payload 2.18.0 → 2.18.2
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/admin/components/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/admin/components/elements/EditUpload/index.js +4 -2
- package/dist/admin/components/views/collections/Edit/Upload/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Upload/index.js +4 -2
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +3 -3
- package/dist/uploads/getBaseFields.d.ts.map +1 -1
- package/dist/uploads/getBaseFields.js +2 -2
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +13 -15
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/EditUpload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAG/C,OAAO,qCAAqC,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAMlD,OAAO,cAAc,CAAA;AAerB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/EditUpload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAG/C,OAAO,qCAAqC,CAAA;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAMlD,OAAO,cAAc,CAAA;AAerB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAkPA,CAAA"}
|
|
@@ -84,7 +84,9 @@ const EditUpload = ({ doc, fileName, fileSrc, imageCacheTag, showCrop, showFocal
|
|
|
84
84
|
const [crop, setCrop] = (0, _react.useState)({
|
|
85
85
|
height: uploadEdits?.crop?.height || 100,
|
|
86
86
|
unit: '%',
|
|
87
|
-
width: uploadEdits?.crop?.width || 100
|
|
87
|
+
width: uploadEdits?.crop?.width || 100,
|
|
88
|
+
x: uploadEdits?.crop?.x || 0,
|
|
89
|
+
y: uploadEdits?.crop?.y || 0
|
|
88
90
|
});
|
|
89
91
|
const [focalPosition, setFocalPosition] = (0, _react.useState)({
|
|
90
92
|
x: uploadEdits?.focalPoint?.x || doc.focalX || 50,
|
|
@@ -387,4 +389,4 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
|
|
|
387
389
|
}, children), /*#__PURE__*/ _react.default.createElement("div", null));
|
|
388
390
|
};
|
|
389
391
|
|
|
390
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0VkaXRVcGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCBSZWFjdENyb3AsIHsgdHlwZSBDcm9wIGFzIENyb3BUeXBlIH0gZnJvbSAncmVhY3QtaW1hZ2UtY3JvcCdcbmltcG9ydCAncmVhY3QtaW1hZ2UtY3JvcC9kaXN0L1JlYWN0Q3JvcC5jc3MnXG5cbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vdHlwZXMnXG5cbmltcG9ydCBQbHVzIGZyb20gJy4uLy4uL2ljb25zL1BsdXMnXG5pbXBvcnQgeyB1c2VGb3JtUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvRm9ybVF1ZXJ5UGFyYW1zJ1xuaW1wb3J0IHsgZWRpdERyYXdlclNsdWcgfSBmcm9tICcuLi8uLi92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L1VwbG9hZCdcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdlZGl0LXVwbG9hZCdcblxuY29uc3QgSW5wdXQ6IFJlYWN0LkZDPHsgbmFtZTogc3RyaW5nOyBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7IHZhbHVlOiBzdHJpbmcgfT4gPSAoe1xuICBuYW1lLFxuICBvbkNoYW5nZSxcbiAgdmFsdWUsXG59KSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dGB9PlxuICAgIHtuYW1lfVxuICAgIDxpbnB1dCBuYW1lPXtuYW1lfSBvbkNoYW5nZT17KGUpID0+IG9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0gdHlwZT1cIm51bWJlclwiIHZhbHVlPXt2YWx1ZX0gLz5cbiAgPC9kaXY+XG4pXG5cbmV4cG9ydCBjb25zdCBFZGl0VXBsb2FkOiBSZWFjdC5GQzx7XG4gIGRvYz86IERhdGFcbiAgZmlsZU5hbWU6IHN0cmluZ1xuICBmaWxlU3JjOiBzdHJpbmdcbiAgaW1hZ2VDYWNoZVRhZz86IHN0cmluZ1xuICBzaG93Q3JvcD86IGJvb2xlYW5cbiAgc2hvd0ZvY2FsUG9pbnQ/OiBib29sZWFuXG59PiA9ICh7IGRvYywgZmlsZU5hbWUsIGZpbGVTcmMsIGltYWdlQ2FjaGVUYWcsIHNob3dDcm9wLCBzaG93Rm9jYWxQb2ludCB9KSA9PiB7XG4gIGNvbnN0IHsgY2xvc2VNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnZ2VuZXJhbCcsICd1cGxvYWQnXSlcbiAgY29uc3QgeyBmb3JtUXVlcnlQYXJhbXMsIHNldEZvcm1RdWVyeVBhcmFtcyB9ID0gdXNlRm9ybVF1ZXJ5UGFyYW1zKClcbiAgY29uc3QgeyB1cGxvYWRFZGl0cyB9ID0gZm9ybVF1ZXJ5UGFyYW1zIHx8IHt9XG4gIGNvbnN0IFtjcm9wLCBzZXRDcm9wXSA9IHVzZVN0YXRlPENyb3BUeXBlPih7XG4gICAgaGVpZ2h0OiB1cGxvYWRFZGl0cz8uY3JvcD8uaGVpZ2h0IHx8IDEwMCxcbiAgICB1bml0OiAnJScsXG4gICAgd2lkdGg6IHVwbG9hZEVkaXRzPy5jcm9wPy53aWR0aCB8fCAxMDAsXG4gIH0pXG5cbiAgY29uc3QgW2ZvY2FsUG9zaXRpb24sIHNldEZvY2FsUG9zaXRpb25dID0gdXNlU3RhdGU8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9Pih7XG4gICAgeDogdXBsb2FkRWRpdHM/LmZvY2FsUG9pbnQ/LnggfHwgZG9jLmZvY2FsWCB8fCA1MCxcbiAgICB5OiB1cGxvYWRFZGl0cz8uZm9jYWxQb2ludD8ueSB8fCBkb2MuZm9jYWxZIHx8IDUwLFxuICB9KVxuXG4gIGNvbnN0IFtjaGVja0JvdW5kcywgc2V0Q2hlY2tCb3VuZHNdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IFtvcmlnaW5hbEhlaWdodCwgc2V0T3JpZ2luYWxIZWlnaHRdID0gdXNlU3RhdGU8bnVtYmVyPigwKVxuICBjb25zdCBbb3JpZ2luYWxXaWR0aCwgc2V0T3JpZ2luYWxXaWR0aF0gPSB1c2VTdGF0ZTxudW1iZXI+KDApXG5cbiAgY29uc3QgZm9jYWxXcmFwUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkPigpXG4gIGNvbnN0IGltYWdlUmVmID0gdXNlUmVmPEhUTUxJbWFnZUVsZW1lbnQgfCB1bmRlZmluZWQ+KClcbiAgY29uc3QgY3JvcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuXG4gIGNvbnN0IGZpbmVUdW5lQ3JvcCA9ICh7IGRpbWVuc2lvbiwgdmFsdWUgfTogeyBkaW1lbnNpb246ICdoZWlnaHQnIHwgJ3dpZHRoJzsgdmFsdWU6IHN0cmluZyB9KSA9PiB7XG4gICAgY29uc3QgaW50VmFsdWUgPSBwYXJzZUludCh2YWx1ZSlcbiAgICBpZiAoZGltZW5zaW9uID09PSAnd2lkdGgnICYmIGludFZhbHVlID49IG9yaWdpbmFsV2lkdGgpIHJldHVybiBudWxsXG4gICAgaWYgKGRpbWVuc2lvbiA9PT0gJ2hlaWdodCcgJiYgaW50VmFsdWUgPj0gb3JpZ2luYWxIZWlnaHQpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBwZXJjZW50YWdlID0gMTAwICogKGludFZhbHVlIC8gKGRpbWVuc2lvbiA9PT0gJ3dpZHRoJyA/IG9yaWdpbmFsV2lkdGggOiBvcmlnaW5hbEhlaWdodCkpXG5cbiAgICBpZiAocGVyY2VudGFnZSA9PT0gMTAwIHx8IHBlcmNlbnRhZ2UgPT09IDApIHJldHVybiBudWxsXG5cbiAgICBzZXRDcm9wKHtcbiAgICAgIC4uLmNyb3AsXG4gICAgICBbZGltZW5zaW9uXTogcGVyY2VudGFnZSxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgZmluZVR1bmVGb2NhbFBvc2l0aW9uID0gKHtcbiAgICBjb29yZGluYXRlLFxuICAgIHZhbHVlLFxuICB9OiB7XG4gICAgY29vcmRpbmF0ZTogJ3gnIHwgJ3knXG4gICAgdmFsdWU6IHN0cmluZ1xuICB9KSA9PiB7XG4gICAgY29uc3QgaW50VmFsdWUgPSBwYXJzZUludCh2YWx1ZSlcbiAgICBpZiAoaW50VmFsdWUgPj0gMCAmJiBpbnRWYWx1ZSA8PSAxMDApIHtcbiAgICAgIHNldEZvY2FsUG9zaXRpb24oKHByZXZQb3NpdGlvbikgPT4gKHsgLi4ucHJldlBvc2l0aW9uLCBbY29vcmRpbmF0ZV06IGludFZhbHVlIH0pKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNhdmVFZGl0cyA9ICgpID0+IHtcbiAgICBzZXRGb3JtUXVlcnlQYXJhbXMoe1xuICAgICAgLi4uZm9ybVF1ZXJ5UGFyYW1zLFxuICAgICAgdXBsb2FkRWRpdHM6IHtcbiAgICAgICAgY3JvcDogY3JvcCB8fCB1bmRlZmluZWQsXG4gICAgICAgIGZvY2FsUG9pbnQ6IGZvY2FsUG9zaXRpb24gPyBmb2NhbFBvc2l0aW9uIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KVxuICAgIGNsb3NlTW9kYWwoZWRpdERyYXdlclNsdWcpXG4gIH1cblxuICBjb25zdCBvbkRyYWdFbmQgPSBSZWFjdC51c2VDYWxsYmFjaygoeyB4LCB5IH0pID0+IHtcbiAgICBzZXRGb2NhbFBvc2l0aW9uKHsgeCwgeSB9KVxuICAgIHNldENoZWNrQm91bmRzKGZhbHNlKVxuICB9LCBbXSlcblxuICBjb25zdCBjZW50ZXJGb2NhbFBvaW50ID0gKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBmb2NhbFdyYXBSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IGJvdW5kc1JlY3QgPSBzaG93Q3JvcFxuICAgICAgPyBjcm9wUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIDogaW1hZ2VSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IHhDZW50ZXIgPVxuICAgICAgKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQgKyBib3VuZHNSZWN0LndpZHRoIC8gMikgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgIGNvbnN0IHlDZW50ZXIgPVxuICAgICAgKChib3VuZHNSZWN0LnRvcCAtIGNvbnRhaW5lclJlY3QudG9wICsgYm91bmRzUmVjdC5oZWlnaHQgLyAyKSAvIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqIDEwMFxuICAgIHNldEZvY2FsUG9zaXRpb24oeyB4OiB4Q2VudGVyLCB5OiB5Q2VudGVyIH0pXG4gIH1cblxuICBjb25zdCBmaWxlU3JjVG9Vc2UgPSBpbWFnZUNhY2hlVGFnID8gYCR7ZmlsZVNyY30/JHtpbWFnZUNhY2hlVGFnfWAgOiBmaWxlU3JjXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXJgfT5cbiAgICAgICAgPGgyIHRpdGxlPXtgJHt0KCdnZW5lcmFsOmVkaXRpbmcnKX0gJHtmaWxlTmFtZX1gfT5cbiAgICAgICAgICB7dCgnZ2VuZXJhbDplZGl0aW5nJyl9IHtmaWxlTmFtZX1cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2FjdGlvbnNgfT5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdjYW5jZWwnKX1cbiAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY2FuY2VsYH1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNsb3NlTW9kYWwoZWRpdERyYXdlclNsdWcpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0KCdnZW5lcmFsOmNhbmNlbCcpfVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ2dlbmVyYWw6YXBwbHlDaGFuZ2VzJyl9XG4gICAgICAgICAgICBidXR0b25TdHlsZT1cInByaW1hcnlcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zYXZlYH1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNhdmVFZGl0cygpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0KCdnZW5lcmFsOmFwcGx5Q2hhbmdlcycpfVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3Rvb2xXcmFwYH0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jcm9wYH0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19mb2NhbC13cmFwcGVyYH1cbiAgICAgICAgICAgIHJlZj17Zm9jYWxXcmFwUmVmfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgYXNwZWN0UmF0aW86IGAke29yaWdpbmFsV2lkdGggLyBvcmlnaW5hbEhlaWdodH1gLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2hvd0Nyb3AgPyAoXG4gICAgICAgICAgICAgIDxSZWFjdENyb3BcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3JlYWN0Q3JvcGB9XG4gICAgICAgICAgICAgICAgY3JvcD17Y3JvcH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KF8sIGMpID0+IHNldENyb3AoYyl9XG4gICAgICAgICAgICAgICAgb25Db21wbGV0ZT17KCkgPT4gc2V0Q2hlY2tCb3VuZHModHJ1ZSl9XG4gICAgICAgICAgICAgICAgcmVuZGVyU2VsZWN0aW9uQWRkb249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY3JvcC13aW5kb3dgfSByZWY9e2Nyb3BSZWZ9IC8+XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgIGFsdD17dCgndXBsb2FkOnNldENyb3BBcmVhJyl9XG4gICAgICAgICAgICAgICAgICBvbkxvYWQ9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldE9yaWdpbmFsSGVpZ2h0KGUuY3VycmVudFRhcmdldC5uYXR1cmFsSGVpZ2h0KVxuICAgICAgICAgICAgICAgICAgICBzZXRPcmlnaW5hbFdpZHRoKGUuY3VycmVudFRhcmdldC5uYXR1cmFsV2lkdGgpXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgcmVmPXtpbWFnZVJlZn1cbiAgICAgICAgICAgICAgICAgIHNyYz17ZmlsZVNyY1RvVXNlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvUmVhY3RDcm9wPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD17dCgndXBsb2FkOnNldEZvY2FsUG9pbnQnKX1cbiAgICAgICAgICAgICAgICBvbkxvYWQ9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRPcmlnaW5hbEhlaWdodChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbEhlaWdodClcbiAgICAgICAgICAgICAgICAgIHNldE9yaWdpbmFsV2lkdGgoZS5jdXJyZW50VGFyZ2V0Lm5hdHVyYWxXaWR0aClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHJlZj17aW1hZ2VSZWZ9XG4gICAgICAgICAgICAgICAgc3JjPXtmaWxlU3JjVG9Vc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3Nob3dGb2NhbFBvaW50ICYmIChcbiAgICAgICAgICAgICAgPERyYWdnYWJsZUVsZW1lbnRcbiAgICAgICAgICAgICAgICBib3VuZHNSZWY9e3Nob3dDcm9wID8gY3JvcFJlZiA6IGltYWdlUmVmfVxuICAgICAgICAgICAgICAgIGNoZWNrQm91bmRzPXtzaG93Q3JvcCA/IGNoZWNrQm91bmRzIDogZmFsc2V9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19mb2NhbFBvaW50YH1cbiAgICAgICAgICAgICAgICBjb250YWluZXJSZWY9e2ZvY2FsV3JhcFJlZn1cbiAgICAgICAgICAgICAgICBpbml0aWFsUG9zaXRpb249e2ZvY2FsUG9zaXRpb259XG4gICAgICAgICAgICAgICAgb25EcmFnRW5kPXtvbkRyYWdFbmR9XG4gICAgICAgICAgICAgICAgc2V0Q2hlY2tCb3VuZHM9e3Nob3dDcm9wID8gc2V0Q2hlY2tCb3VuZHMgOiBmYWxzZX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQbHVzIC8+XG4gICAgICAgICAgICAgIDwvRHJhZ2dhYmxlRWxlbWVudD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7KHNob3dDcm9wIHx8IHNob3dGb2NhbFBvaW50KSAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NpZGViYXJgfT5cbiAgICAgICAgICAgIHtzaG93Q3JvcCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ncm91cFdyYXBgfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RpdGxlV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgICA8aDM+e3QoJ3VwbG9hZDpjcm9wJyl9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZXNldGB9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldENyb3Aoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdDogJyUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnZ2VuZXJhbDpyZXNldCcpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZGVzY3JpcHRpb25gfT5cbiAgICAgICAgICAgICAgICAgIHt0KCd1cGxvYWQ6Y3JvcFRvb2xEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faW5wdXRzV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2Ake3QoJ3VwbG9hZDp3aWR0aCcpfSAocHgpYH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVDcm9wKHsgZGltZW5zaW9uOiAnd2lkdGgnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9eygoY3JvcC53aWR0aCAvIDEwMCkgKiBvcmlnaW5hbFdpZHRoKS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtgJHt0KCd1cGxvYWQ6aGVpZ2h0Jyl9IChweClgfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHZhbHVlKSA9PiBmaW5lVHVuZUNyb3AoeyBkaW1lbnNpb246ICdoZWlnaHQnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9eygoY3JvcC5oZWlnaHQgLyAxMDApICogb3JpZ2luYWxIZWlnaHQpLnRvRml4ZWQoMCl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHtzaG93Rm9jYWxQb2ludCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19ncm91cFdyYXBgfT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RpdGxlV3JhcGB9PlxuICAgICAgICAgICAgICAgICAgICA8aDM+e3QoJ3VwbG9hZDpmb2NhbFBvaW50Jyl9PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZXNldGB9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2VudGVyRm9jYWxQb2ludH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdnZW5lcmFsOnJlc2V0Jyl9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19kZXNjcmlwdGlvbmB9PlxuICAgICAgICAgICAgICAgICAge3QoJ3VwbG9hZDpmb2NhbFBvaW50RGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0c1dyYXBgfT5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiWCAlXCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVGb2NhbFBvc2l0aW9uKHsgY29vcmRpbmF0ZTogJ3gnLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2ZvY2FsUG9zaXRpb24ueC50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiWSAlXCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVGb2NhbFBvc2l0aW9uKHsgY29vcmRpbmF0ZTogJ3knLCB2YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2ZvY2FsUG9zaXRpb24ueS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuY29uc3QgRHJhZ2dhYmxlRWxlbWVudCA9ICh7XG4gIGJvdW5kc1JlZixcbiAgY2hlY2tCb3VuZHMsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbnRhaW5lclJlZixcbiAgaW5pdGlhbFBvc2l0aW9uID0geyB4OiA1MCwgeTogNTAgfSxcbiAgb25EcmFnRW5kLFxuICBzZXRDaGVja0JvdW5kcyxcbn0pID0+IHtcbiAgY29uc3QgW3Bvc2l0aW9uLCBzZXRQb3NpdGlvbl0gPSB1c2VTdGF0ZSh7IHg6IGluaXRpYWxQb3NpdGlvbi54LCB5OiBpbml0aWFsUG9zaXRpb24ueSB9KVxuICBjb25zdCBbaXNEcmFnZ2luZywgc2V0SXNEcmFnZ2luZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgZHJhZ1JlZiA9IHVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuXG4gIGNvbnN0IGdldENvb3JkaW5hdGVzID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKG1vdXNlWEFyZz86IG51bWJlciwgbW91c2VZQXJnPzogbnVtYmVyLCByZWNlbnRlcj86IGJvb2xlYW4pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgYm91bmRzUmVjdCA9IGJvdW5kc1JlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBtb3VzZVggPSBtb3VzZVhBcmcgPz8gYm91bmRzUmVjdC5sZWZ0XG4gICAgICBjb25zdCBtb3VzZVkgPSBtb3VzZVlBcmcgPz8gYm91bmRzUmVjdC50b3BcblxuICAgICAgY29uc3QgeE91dE9mQm91bmRzID0gbW91c2VYIDwgYm91bmRzUmVjdC5sZWZ0IHx8IG1vdXNlWCA+IGJvdW5kc1JlY3QucmlnaHRcbiAgICAgIGNvbnN0IHlPdXRPZkJvdW5kcyA9IG1vdXNlWSA8IGJvdW5kc1JlY3QudG9wIHx8IG1vdXNlWSA+IGJvdW5kc1JlY3QuYm90dG9tXG5cbiAgICAgIGxldCB4ID0gKChtb3VzZVggLSBjb250YWluZXJSZWN0LmxlZnQpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICAgIGxldCB5ID0gKChtb3VzZVkgLSBjb250YWluZXJSZWN0LnRvcCkgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgIGNvbnN0IHhDZW50ZXIgPVxuICAgICAgICAoKGJvdW5kc1JlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIGJvdW5kc1JlY3Qud2lkdGggLyAyKSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgICBjb25zdCB5Q2VudGVyID1cbiAgICAgICAgKChib3VuZHNSZWN0LnRvcCAtIGNvbnRhaW5lclJlY3QudG9wICsgYm91bmRzUmVjdC5oZWlnaHQgLyAyKSAvIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqIDEwMFxuICAgICAgaWYgKHhPdXRPZkJvdW5kcyB8fCB5T3V0T2ZCb3VuZHMpIHtcbiAgICAgICAgc2V0SXNEcmFnZ2luZyhmYWxzZSlcbiAgICAgICAgaWYgKG1vdXNlWCA8IGJvdW5kc1JlY3QubGVmdCkge1xuICAgICAgICAgIHggPSAoKGJvdW5kc1JlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCkgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgICAgICB9IGVsc2UgaWYgKG1vdXNlWCA+IGJvdW5kc1JlY3QucmlnaHQpIHtcbiAgICAgICAgICB4ID1cbiAgICAgICAgICAgICgoY29udGFpbmVyUmVjdC53aWR0aCAtIChjb250YWluZXJSZWN0LnJpZ2h0IC0gYm91bmRzUmVjdC5yaWdodCkpIC9cbiAgICAgICAgICAgICAgY29udGFpbmVyUmVjdC53aWR0aCkgKlxuICAgICAgICAgICAgMTAwXG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW91c2VZIDwgYm91bmRzUmVjdC50b3ApIHtcbiAgICAgICAgICB5ID0gKChib3VuZHNSZWN0LnRvcCAtIGNvbnRhaW5lclJlY3QudG9wKSAvIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqIDEwMFxuICAgICAgICB9IGVsc2UgaWYgKG1vdXNlWSA+IGJvdW5kc1JlY3QuYm90dG9tKSB7XG4gICAgICAgICAgeSA9XG4gICAgICAgICAgICAoKGNvbnRhaW5lclJlY3QuaGVpZ2h0IC0gKGNvbnRhaW5lclJlY3QuYm90dG9tIC0gYm91bmRzUmVjdC5ib3R0b20pKSAvXG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlY3QuaGVpZ2h0KSAqXG4gICAgICAgICAgICAxMDBcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWNlbnRlcikge1xuICAgICAgICAgIHggPSB4T3V0T2ZCb3VuZHMgPyB4Q2VudGVyIDogeFxuICAgICAgICAgIHkgPSB5T3V0T2ZCb3VuZHMgPyB5Q2VudGVyIDogeVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IHgsIHkgfVxuICAgIH0sXG4gICAgW2JvdW5kc1JlZiwgY29udGFpbmVyUmVmXSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRG93biA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICBzZXRJc0RyYWdnaW5nKHRydWUpXG4gIH1cblxuICBjb25zdCBoYW5kbGVNb3VzZU1vdmUgPSAoZXZlbnQpID0+IHtcbiAgICBpZiAoIWlzRHJhZ2dpbmcpIHJldHVybiBudWxsXG4gICAgY29uc3QgeyB4LCB5IH0gPSBnZXRDb29yZGluYXRlcyhldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKVxuXG4gICAgc2V0UG9zaXRpb24oeyB4LCB5IH0pXG4gIH1cblxuICBjb25zdCBvbkRyb3AgPSAoKSA9PiB7XG4gICAgc2V0SXNEcmFnZ2luZyhmYWxzZSlcbiAgICBvbkRyYWdFbmQocG9zaXRpb24pXG4gIH1cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0RyYWdnaW5nIHx8ICFkcmFnUmVmLmN1cnJlbnQpIHJldHVyblxuICAgIGlmIChjaGVja0JvdW5kcykge1xuICAgICAgY29uc3QgeyBoZWlnaHQsIGxlZnQsIHRvcCwgd2lkdGggfSA9IGRyYWdSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgeyB4LCB5IH0gPSBnZXRDb29yZGluYXRlcyhsZWZ0ICsgd2lkdGggLyAyLCB0b3AgKyBoZWlnaHQgLyAyLCB0cnVlKVxuICAgICAgb25EcmFnRW5kKHsgeCwgeSB9KVxuICAgICAgc2V0UG9zaXRpb24oeyB4LCB5IH0pXG4gICAgICBzZXRDaGVja0JvdW5kcyhmYWxzZSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfSwgW2dldENvb3JkaW5hdGVzLCBpc0RyYWdnaW5nLCBjaGVja0JvdW5kcywgc2V0Q2hlY2tCb3VuZHMsIHBvc2l0aW9uLngsIHBvc2l0aW9uLnksIG9uRHJhZ0VuZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRQb3NpdGlvbih7IHg6IGluaXRpYWxQb3NpdGlvbi54LCB5OiBpbml0aWFsUG9zaXRpb24ueSB9KVxuICB9LCBbaW5pdGlhbFBvc2l0aW9uLngsIGluaXRpYWxQb3NpdGlvbi55XSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17W1xuICAgICAgICBgJHtiYXNlQ2xhc3N9X19kcmFnZ2FibGUtY29udGFpbmVyYCxcbiAgICAgICAgaXNEcmFnZ2luZyAmJiBgJHtiYXNlQ2xhc3N9X19kcmFnZ2FibGUtY29udGFpbmVyLS1kcmFnZ2luZ2AsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgIG9uTW91c2VNb3ZlPXtoYW5kbGVNb3VzZU1vdmV9XG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9e1tgJHtiYXNlQ2xhc3N9X19kcmFnZ2FibGVgLCBjbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICAgIG9uTW91c2VEb3duPXtoYW5kbGVNb3VzZURvd259XG4gICAgICAgIG9uTW91c2VVcD17b25Ecm9wfVxuICAgICAgICByZWY9e2RyYWdSZWZ9XG4gICAgICAgIHN0eWxlPXt7IGxlZnQ6IGAke3Bvc2l0aW9uLnh9JWAsIHRvcDogYCR7cG9zaXRpb24ueX0lYCB9fVxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2IC8+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJFZGl0VXBsb2FkIiwiYmFzZUNsYXNzIiwiSW5wdXQiLCJuYW1lIiwib25DaGFuZ2UiLCJ2YWx1ZSIsImRpdiIsImNsYXNzTmFtZSIsImlucHV0IiwiZSIsInRhcmdldCIsInR5cGUiLCJkb2MiLCJmaWxlTmFtZSIsImZpbGVTcmMiLCJpbWFnZUNhY2hlVGFnIiwic2hvd0Nyb3AiLCJzaG93Rm9jYWxQb2ludCIsImNsb3NlTW9kYWwiLCJ1c2VNb2RhbCIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsImZvcm1RdWVyeVBhcmFtcyIsInNldEZvcm1RdWVyeVBhcmFtcyIsInVzZUZvcm1RdWVyeVBhcmFtcyIsInVwbG9hZEVkaXRzIiwiY3JvcCIsInNldENyb3AiLCJ1c2VTdGF0ZSIsImhlaWdodCIsInVuaXQiLCJ3aWR0aCIsImZvY2FsUG9zaXRpb24iLCJzZXRGb2NhbFBvc2l0aW9uIiwieCIsImZvY2FsUG9pbnQiLCJmb2NhbFgiLCJ5IiwiZm9jYWxZIiwiY2hlY2tCb3VuZHMiLCJzZXRDaGVja0JvdW5kcyIsIm9yaWdpbmFsSGVpZ2h0Iiwic2V0T3JpZ2luYWxIZWlnaHQiLCJvcmlnaW5hbFdpZHRoIiwic2V0T3JpZ2luYWxXaWR0aCIsImZvY2FsV3JhcFJlZiIsInVzZVJlZiIsImltYWdlUmVmIiwiY3JvcFJlZiIsImZpbmVUdW5lQ3JvcCIsImRpbWVuc2lvbiIsImludFZhbHVlIiwicGFyc2VJbnQiLCJwZXJjZW50YWdlIiwiZmluZVR1bmVGb2NhbFBvc2l0aW9uIiwiY29vcmRpbmF0ZSIsInByZXZQb3NpdGlvbiIsInNhdmVFZGl0cyIsInVuZGVmaW5lZCIsImVkaXREcmF3ZXJTbHVnIiwib25EcmFnRW5kIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsImNlbnRlckZvY2FsUG9pbnQiLCJjb250YWluZXJSZWN0IiwiY3VycmVudCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImJvdW5kc1JlY3QiLCJ4Q2VudGVyIiwibGVmdCIsInlDZW50ZXIiLCJ0b3AiLCJmaWxlU3JjVG9Vc2UiLCJoMiIsInRpdGxlIiwiQnV0dG9uIiwiYXJpYS1sYWJlbCIsImJ1dHRvblN0eWxlIiwib25DbGljayIsInJlZiIsInN0eWxlIiwiYXNwZWN0UmF0aW8iLCJSZWFjdENyb3AiLCJfIiwiYyIsIm9uQ29tcGxldGUiLCJyZW5kZXJTZWxlY3Rpb25BZGRvbiIsImltZyIsImFsdCIsIm9uTG9hZCIsImN1cnJlbnRUYXJnZXQiLCJuYXR1cmFsSGVpZ2h0IiwibmF0dXJhbFdpZHRoIiwic3JjIiwiRHJhZ2dhYmxlRWxlbWVudCIsImJvdW5kc1JlZiIsImNvbnRhaW5lclJlZiIsImluaXRpYWxQb3NpdGlvbiIsIlBsdXMiLCJoMyIsInNwYW4iLCJ0b0ZpeGVkIiwiY2hpbGRyZW4iLCJwb3NpdGlvbiIsInNldFBvc2l0aW9uIiwiaXNEcmFnZ2luZyIsInNldElzRHJhZ2dpbmciLCJkcmFnUmVmIiwiZ2V0Q29vcmRpbmF0ZXMiLCJtb3VzZVhBcmciLCJtb3VzZVlBcmciLCJyZWNlbnRlciIsIm1vdXNlWCIsIm1vdXNlWSIsInhPdXRPZkJvdW5kcyIsInJpZ2h0IiwieU91dE9mQm91bmRzIiwiYm90dG9tIiwiaGFuZGxlTW91c2VEb3duIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsImhhbmRsZU1vdXNlTW92ZSIsImNsaWVudFgiLCJjbGllbnRZIiwib25Ecm9wIiwidXNlRWZmZWN0IiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJvbk1vdXNlTW92ZSIsImJ1dHRvbiIsIm9uTW91c2VEb3duIiwib25Nb3VzZVVwIl0sIm1hcHBpbmdzIjoiOzs7OytCQTJCYUE7OztlQUFBQTs7O3VCQTNCWTsrREFDZTs4QkFDVDt1RUFDa0I7UUFDMUM7NkRBSVU7aUNBQ2tCO3dCQUNKOytEQUNaO1FBQ1o7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsTUFBTUMsWUFBWTtBQUVsQixNQUFNQyxRQUFzRixDQUFDLEVBQzNGQyxJQUFJLEVBQ0pDLFFBQVEsRUFDUkMsS0FBSyxFQUNOLGlCQUNDLDZCQUFDQztRQUFJQyxXQUFXLENBQUMsRUFBRU4sVUFBVSxPQUFPLENBQUM7T0FDbENFLG9CQUNELDZCQUFDSztRQUFNTCxNQUFNQTtRQUFNQyxVQUFVLENBQUNLLElBQU1MLFNBQVNLLEVBQUVDLE1BQU0sQ0FBQ0wsS0FBSztRQUFHTSxNQUFLO1FBQVNOLE9BQU9BOztBQUloRixNQUFNTCxhQU9SLENBQUMsRUFBRVksR0FBRyxFQUFFQyxRQUFRLEVBQUVDLE9BQU8sRUFBRUMsYUFBYSxFQUFFQyxRQUFRLEVBQUVDLGNBQWMsRUFBRTtJQUN2RSxNQUFNLEVBQUVDLFVBQVUsRUFBRSxHQUFHQyxJQUFBQSxlQUFRO0lBQy9CLE1BQU0sRUFBRUMsQ0FBQyxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7UUFBQztRQUFXO0tBQVM7SUFDbEQsTUFBTSxFQUFFQyxlQUFlLEVBQUVDLGtCQUFrQixFQUFFLEdBQUdDLElBQUFBLG1DQUFrQjtJQUNsRSxNQUFNLEVBQUVDLFdBQVcsRUFBRSxHQUFHSCxtQkFBbUIsQ0FBQztJQUM1QyxNQUFNLENBQUNJLE1BQU1DLFFBQVEsR0FBR0MsSUFB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
|
|
392
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0VkaXRVcGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCBSZWFjdENyb3AsIHsgdHlwZSBDcm9wIGFzIENyb3BUeXBlIH0gZnJvbSAncmVhY3QtaW1hZ2UtY3JvcCdcbmltcG9ydCAncmVhY3QtaW1hZ2UtY3JvcC9kaXN0L1JlYWN0Q3JvcC5jc3MnXG5cbmltcG9ydCB0eXBlIHsgRGF0YSB9IGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vdHlwZXMnXG5cbmltcG9ydCBQbHVzIGZyb20gJy4uLy4uL2ljb25zL1BsdXMnXG5pbXBvcnQgeyB1c2VGb3JtUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvRm9ybVF1ZXJ5UGFyYW1zJ1xuaW1wb3J0IHsgZWRpdERyYXdlclNsdWcgfSBmcm9tICcuLi8uLi92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L1VwbG9hZCdcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdlZGl0LXVwbG9hZCdcblxuY29uc3QgSW5wdXQ6IFJlYWN0LkZDPHsgbmFtZTogc3RyaW5nOyBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7IHZhbHVlOiBzdHJpbmcgfT4gPSAoe1xuICBuYW1lLFxuICBvbkNoYW5nZSxcbiAgdmFsdWUsXG59KSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dGB9PlxuICAgIHtuYW1lfVxuICAgIDxpbnB1dCBuYW1lPXtuYW1lfSBvbkNoYW5nZT17KGUpID0+IG9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKX0gdHlwZT1cIm51bWJlclwiIHZhbHVlPXt2YWx1ZX0gLz5cbiAgPC9kaXY+XG4pXG5cbmV4cG9ydCBjb25zdCBFZGl0VXBsb2FkOiBSZWFjdC5GQzx7XG4gIGRvYz86IERhdGFcbiAgZmlsZU5hbWU6IHN0cmluZ1xuICBmaWxlU3JjOiBzdHJpbmdcbiAgaW1hZ2VDYWNoZVRhZz86IHN0cmluZ1xuICBzaG93Q3JvcD86IGJvb2xlYW5cbiAgc2hvd0ZvY2FsUG9pbnQ/OiBib29sZWFuXG59PiA9ICh7IGRvYywgZmlsZU5hbWUsIGZpbGVTcmMsIGltYWdlQ2FjaGVUYWcsIHNob3dDcm9wLCBzaG93Rm9jYWxQb2ludCB9KSA9PiB7XG4gIGNvbnN0IHsgY2xvc2VNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnZ2VuZXJhbCcsICd1cGxvYWQnXSlcbiAgY29uc3QgeyBmb3JtUXVlcnlQYXJhbXMsIHNldEZvcm1RdWVyeVBhcmFtcyB9ID0gdXNlRm9ybVF1ZXJ5UGFyYW1zKClcbiAgY29uc3QgeyB1cGxvYWRFZGl0cyB9ID0gZm9ybVF1ZXJ5UGFyYW1zIHx8IHt9XG4gIGNvbnN0IFtjcm9wLCBzZXRDcm9wXSA9IHVzZVN0YXRlPENyb3BUeXBlPih7XG4gICAgaGVpZ2h0OiB1cGxvYWRFZGl0cz8uY3JvcD8uaGVpZ2h0IHx8IDEwMCxcbiAgICB1bml0OiAnJScsXG4gICAgd2lkdGg6IHVwbG9hZEVkaXRzPy5jcm9wPy53aWR0aCB8fCAxMDAsXG4gICAgeDogdXBsb2FkRWRpdHM/LmNyb3A/LnggfHwgMCxcbiAgICB5OiB1cGxvYWRFZGl0cz8uY3JvcD8ueSB8fCAwLFxuICB9KVxuXG4gIGNvbnN0IFtmb2NhbFBvc2l0aW9uLCBzZXRGb2NhbFBvc2l0aW9uXSA9IHVzZVN0YXRlPHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfT4oe1xuICAgIHg6IHVwbG9hZEVkaXRzPy5mb2NhbFBvaW50Py54IHx8IGRvYy5mb2NhbFggfHwgNTAsXG4gICAgeTogdXBsb2FkRWRpdHM/LmZvY2FsUG9pbnQ/LnkgfHwgZG9jLmZvY2FsWSB8fCA1MCxcbiAgfSlcblxuICBjb25zdCBbY2hlY2tCb3VuZHMsIHNldENoZWNrQm91bmRzXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbb3JpZ2luYWxIZWlnaHQsIHNldE9yaWdpbmFsSGVpZ2h0XSA9IHVzZVN0YXRlPG51bWJlcj4oMClcbiAgY29uc3QgW29yaWdpbmFsV2lkdGgsIHNldE9yaWdpbmFsV2lkdGhdID0gdXNlU3RhdGU8bnVtYmVyPigwKVxuXG4gIGNvbnN0IGZvY2FsV3JhcFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZD4oKVxuICBjb25zdCBpbWFnZVJlZiA9IHVzZVJlZjxIVE1MSW1hZ2VFbGVtZW50IHwgdW5kZWZpbmVkPigpXG4gIGNvbnN0IGNyb3BSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcblxuICBjb25zdCBmaW5lVHVuZUNyb3AgPSAoeyBkaW1lbnNpb24sIHZhbHVlIH06IHsgZGltZW5zaW9uOiAnaGVpZ2h0JyB8ICd3aWR0aCc7IHZhbHVlOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IGludFZhbHVlID0gcGFyc2VJbnQodmFsdWUpXG4gICAgaWYgKGRpbWVuc2lvbiA9PT0gJ3dpZHRoJyAmJiBpbnRWYWx1ZSA+PSBvcmlnaW5hbFdpZHRoKSByZXR1cm4gbnVsbFxuICAgIGlmIChkaW1lbnNpb24gPT09ICdoZWlnaHQnICYmIGludFZhbHVlID49IG9yaWdpbmFsSGVpZ2h0KSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGVyY2VudGFnZSA9IDEwMCAqIChpbnRWYWx1ZSAvIChkaW1lbnNpb24gPT09ICd3aWR0aCcgPyBvcmlnaW5hbFdpZHRoIDogb3JpZ2luYWxIZWlnaHQpKVxuXG4gICAgaWYgKHBlcmNlbnRhZ2UgPT09IDEwMCB8fCBwZXJjZW50YWdlID09PSAwKSByZXR1cm4gbnVsbFxuXG4gICAgc2V0Q3JvcCh7XG4gICAgICAuLi5jcm9wLFxuICAgICAgW2RpbWVuc2lvbl06IHBlcmNlbnRhZ2UsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGZpbmVUdW5lRm9jYWxQb3NpdGlvbiA9ICh7XG4gICAgY29vcmRpbmF0ZSxcbiAgICB2YWx1ZSxcbiAgfToge1xuICAgIGNvb3JkaW5hdGU6ICd4JyB8ICd5J1xuICAgIHZhbHVlOiBzdHJpbmdcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGludFZhbHVlID0gcGFyc2VJbnQodmFsdWUpXG4gICAgaWYgKGludFZhbHVlID49IDAgJiYgaW50VmFsdWUgPD0gMTAwKSB7XG4gICAgICBzZXRGb2NhbFBvc2l0aW9uKChwcmV2UG9zaXRpb24pID0+ICh7IC4uLnByZXZQb3NpdGlvbiwgW2Nvb3JkaW5hdGVdOiBpbnRWYWx1ZSB9KSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBzYXZlRWRpdHMgPSAoKSA9PiB7XG4gICAgc2V0Rm9ybVF1ZXJ5UGFyYW1zKHtcbiAgICAgIC4uLmZvcm1RdWVyeVBhcmFtcyxcbiAgICAgIHVwbG9hZEVkaXRzOiB7XG4gICAgICAgIGNyb3A6IGNyb3AgfHwgdW5kZWZpbmVkLFxuICAgICAgICBmb2NhbFBvaW50OiBmb2NhbFBvc2l0aW9uID8gZm9jYWxQb3NpdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKVxuICB9XG5cbiAgY29uc3Qgb25EcmFnRW5kID0gUmVhY3QudXNlQ2FsbGJhY2soKHsgeCwgeSB9KSA9PiB7XG4gICAgc2V0Rm9jYWxQb3NpdGlvbih7IHgsIHkgfSlcbiAgICBzZXRDaGVja0JvdW5kcyhmYWxzZSlcbiAgfSwgW10pXG5cbiAgY29uc3QgY2VudGVyRm9jYWxQb2ludCA9ICgpID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWN0ID0gZm9jYWxXcmFwUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCBib3VuZHNSZWN0ID0gc2hvd0Nyb3BcbiAgICAgID8gY3JvcFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICA6IGltYWdlUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICBjb25zdCB4Q2VudGVyID1cbiAgICAgICgoYm91bmRzUmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0ICsgYm91bmRzUmVjdC53aWR0aCAvIDIpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICBjb25zdCB5Q2VudGVyID1cbiAgICAgICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCArIGJvdW5kc1JlY3QuaGVpZ2h0IC8gMikgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICBzZXRGb2NhbFBvc2l0aW9uKHsgeDogeENlbnRlciwgeTogeUNlbnRlciB9KVxuICB9XG5cbiAgY29uc3QgZmlsZVNyY1RvVXNlID0gaW1hZ2VDYWNoZVRhZyA/IGAke2ZpbGVTcmN9PyR7aW1hZ2VDYWNoZVRhZ31gIDogZmlsZVNyY1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Jhc2VDbGFzc30+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyYH0+XG4gICAgICAgIDxoMiB0aXRsZT17YCR7dCgnZ2VuZXJhbDplZGl0aW5nJyl9ICR7ZmlsZU5hbWV9YH0+XG4gICAgICAgICAge3QoJ2dlbmVyYWw6ZWRpdGluZycpfSB7ZmlsZU5hbWV9XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19hY3Rpb25zYH0+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2FuY2VsJyl9XG4gICAgICAgICAgICBidXR0b25TdHlsZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2NhbmNlbGB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjbG9zZU1vZGFsKGVkaXREcmF3ZXJTbHVnKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdnZW5lcmFsOmFwcGx5Q2hhbmdlcycpfVxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2F2ZWB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzYXZlRWRpdHMoKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnZ2VuZXJhbDphcHBseUNoYW5nZXMnKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190b29sV3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY3JvcGB9PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZm9jYWwtd3JhcHBlcmB9XG4gICAgICAgICAgICByZWY9e2ZvY2FsV3JhcFJlZn1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIGFzcGVjdFJhdGlvOiBgJHtvcmlnaW5hbFdpZHRoIC8gb3JpZ2luYWxIZWlnaHR9YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3Nob3dDcm9wID8gKFxuICAgICAgICAgICAgICA8UmVhY3RDcm9wXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19yZWFjdENyb3BgfVxuICAgICAgICAgICAgICAgIGNyb3A9e2Nyb3B9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhfLCBjKSA9PiBzZXRDcm9wKGMpfVxuICAgICAgICAgICAgICAgIG9uQ29tcGxldGU9eygpID0+IHNldENoZWNrQm91bmRzKHRydWUpfVxuICAgICAgICAgICAgICAgIHJlbmRlclNlbGVjdGlvbkFkZG9uPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Nyb3Atd2luZG93YH0gcmVmPXtjcm9wUmVmfSAvPlxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBhbHQ9e3QoJ3VwbG9hZDpzZXRDcm9wQXJlYScpfVxuICAgICAgICAgICAgICAgICAgb25Mb2FkPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRPcmlnaW5hbEhlaWdodChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbEhlaWdodClcbiAgICAgICAgICAgICAgICAgICAgc2V0T3JpZ2luYWxXaWR0aChlLmN1cnJlbnRUYXJnZXQubmF0dXJhbFdpZHRoKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHJlZj17aW1hZ2VSZWZ9XG4gICAgICAgICAgICAgICAgICBzcmM9e2ZpbGVTcmNUb1VzZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1JlYWN0Q3JvcD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBhbHQ9e3QoJ3VwbG9hZDpzZXRGb2NhbFBvaW50Jyl9XG4gICAgICAgICAgICAgICAgb25Mb2FkPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0T3JpZ2luYWxIZWlnaHQoZS5jdXJyZW50VGFyZ2V0Lm5hdHVyYWxIZWlnaHQpXG4gICAgICAgICAgICAgICAgICBzZXRPcmlnaW5hbFdpZHRoKGUuY3VycmVudFRhcmdldC5uYXR1cmFsV2lkdGgpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICByZWY9e2ltYWdlUmVmfVxuICAgICAgICAgICAgICAgIHNyYz17ZmlsZVNyY1RvVXNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtzaG93Rm9jYWxQb2ludCAmJiAoXG4gICAgICAgICAgICAgIDxEcmFnZ2FibGVFbGVtZW50XG4gICAgICAgICAgICAgICAgYm91bmRzUmVmPXtzaG93Q3JvcCA/IGNyb3BSZWYgOiBpbWFnZVJlZn1cbiAgICAgICAgICAgICAgICBjaGVja0JvdW5kcz17c2hvd0Nyb3AgPyBjaGVja0JvdW5kcyA6IGZhbHNlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZm9jYWxQb2ludGB9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyUmVmPXtmb2NhbFdyYXBSZWZ9XG4gICAgICAgICAgICAgICAgaW5pdGlhbFBvc2l0aW9uPXtmb2NhbFBvc2l0aW9ufVxuICAgICAgICAgICAgICAgIG9uRHJhZ0VuZD17b25EcmFnRW5kfVxuICAgICAgICAgICAgICAgIHNldENoZWNrQm91bmRzPXtzaG93Q3JvcCA/IHNldENoZWNrQm91bmRzIDogZmFsc2V9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGx1cyAvPlxuICAgICAgICAgICAgICA8L0RyYWdnYWJsZUVsZW1lbnQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgeyhzaG93Q3JvcCB8fCBzaG93Rm9jYWxQb2ludCkgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaWRlYmFyYH0+XG4gICAgICAgICAgICB7c2hvd0Nyb3AgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXBXcmFwYH0+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190aXRsZVdyYXBgfT5cbiAgICAgICAgICAgICAgICAgICAgPGgzPnt0KCd1cGxvYWQ6Y3JvcCcpfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVzZXRgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRDcm9wKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQ6ICclJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3QoJ2dlbmVyYWw6cmVzZXQnKX1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2Rlc2NyaXB0aW9uYH0+XG4gICAgICAgICAgICAgICAgICB7dCgndXBsb2FkOmNyb3BUb29sRGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0c1dyYXBgfT5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtgJHt0KCd1cGxvYWQ6d2lkdGgnKX0gKHB4KWB9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lQ3JvcCh7IGRpbWVuc2lvbjogJ3dpZHRoJywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXsoKGNyb3Aud2lkdGggLyAxMDApICogb3JpZ2luYWxXaWR0aCkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT17YCR7dCgndXBsb2FkOmhlaWdodCcpfSAocHgpYH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4gZmluZVR1bmVDcm9wKHsgZGltZW5zaW9uOiAnaGVpZ2h0JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXsoKGNyb3AuaGVpZ2h0IC8gMTAwKSAqIG9yaWdpbmFsSGVpZ2h0KS50b0ZpeGVkKDApfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7c2hvd0ZvY2FsUG9pbnQgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZ3JvdXBXcmFwYH0+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190aXRsZVdyYXBgfT5cbiAgICAgICAgICAgICAgICAgICAgPGgzPnt0KCd1cGxvYWQ6Zm9jYWxQb2ludCcpfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVzZXRgfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NlbnRlckZvY2FsUG9pbnR9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7dCgnZ2VuZXJhbDpyZXNldCcpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZGVzY3JpcHRpb25gfT5cbiAgICAgICAgICAgICAgICAgIHt0KCd1cGxvYWQ6Zm9jYWxQb2ludERlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dHNXcmFwYH0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlggJVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lRm9jYWxQb3NpdGlvbih7IGNvb3JkaW5hdGU6ICd4JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb2NhbFBvc2l0aW9uLngudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIlkgJVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpID0+IGZpbmVUdW5lRm9jYWxQb3NpdGlvbih7IGNvb3JkaW5hdGU6ICd5JywgdmFsdWUgfSl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb2NhbFBvc2l0aW9uLnkudG9GaXhlZCgwKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmNvbnN0IERyYWdnYWJsZUVsZW1lbnQgPSAoe1xuICBib3VuZHNSZWYsXG4gIGNoZWNrQm91bmRzLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBjb250YWluZXJSZWYsXG4gIGluaXRpYWxQb3NpdGlvbiA9IHsgeDogNTAsIHk6IDUwIH0sXG4gIG9uRHJhZ0VuZCxcbiAgc2V0Q2hlY2tCb3VuZHMsXG59KSA9PiB7XG4gIGNvbnN0IFtwb3NpdGlvbiwgc2V0UG9zaXRpb25dID0gdXNlU3RhdGUoeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgY29uc3QgW2lzRHJhZ2dpbmcsIHNldElzRHJhZ2dpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGRyYWdSZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgfCB1bmRlZmluZWQ+KClcblxuICBjb25zdCBnZXRDb29yZGluYXRlcyA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChtb3VzZVhBcmc/OiBudW1iZXIsIG1vdXNlWUFyZz86IG51bWJlciwgcmVjZW50ZXI/OiBib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IGJvdW5kc1JlY3QgPSBib3VuZHNSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbW91c2VYID0gbW91c2VYQXJnID8/IGJvdW5kc1JlY3QubGVmdFxuICAgICAgY29uc3QgbW91c2VZID0gbW91c2VZQXJnID8/IGJvdW5kc1JlY3QudG9wXG5cbiAgICAgIGNvbnN0IHhPdXRPZkJvdW5kcyA9IG1vdXNlWCA8IGJvdW5kc1JlY3QubGVmdCB8fCBtb3VzZVggPiBib3VuZHNSZWN0LnJpZ2h0XG4gICAgICBjb25zdCB5T3V0T2ZCb3VuZHMgPSBtb3VzZVkgPCBib3VuZHNSZWN0LnRvcCB8fCBtb3VzZVkgPiBib3VuZHNSZWN0LmJvdHRvbVxuXG4gICAgICBsZXQgeCA9ICgobW91c2VYIC0gY29udGFpbmVyUmVjdC5sZWZ0KSAvIGNvbnRhaW5lclJlY3Qud2lkdGgpICogMTAwXG4gICAgICBsZXQgeSA9ICgobW91c2VZIC0gY29udGFpbmVyUmVjdC50b3ApIC8gY29udGFpbmVyUmVjdC5oZWlnaHQpICogMTAwXG4gICAgICBjb25zdCB4Q2VudGVyID1cbiAgICAgICAgKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQgKyBib3VuZHNSZWN0LndpZHRoIC8gMikgLyBjb250YWluZXJSZWN0LndpZHRoKSAqIDEwMFxuICAgICAgY29uc3QgeUNlbnRlciA9XG4gICAgICAgICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCArIGJvdW5kc1JlY3QuaGVpZ2h0IC8gMikgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgIGlmICh4T3V0T2ZCb3VuZHMgfHwgeU91dE9mQm91bmRzKSB7XG4gICAgICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgICAgIGlmIChtb3VzZVggPCBib3VuZHNSZWN0LmxlZnQpIHtcbiAgICAgICAgICB4ID0gKChib3VuZHNSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQpIC8gY29udGFpbmVyUmVjdC53aWR0aCkgKiAxMDBcbiAgICAgICAgfSBlbHNlIGlmIChtb3VzZVggPiBib3VuZHNSZWN0LnJpZ2h0KSB7XG4gICAgICAgICAgeCA9XG4gICAgICAgICAgICAoKGNvbnRhaW5lclJlY3Qud2lkdGggLSAoY29udGFpbmVyUmVjdC5yaWdodCAtIGJvdW5kc1JlY3QucmlnaHQpKSAvXG4gICAgICAgICAgICAgIGNvbnRhaW5lclJlY3Qud2lkdGgpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vdXNlWSA8IGJvdW5kc1JlY3QudG9wKSB7XG4gICAgICAgICAgeSA9ICgoYm91bmRzUmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCkgLyBjb250YWluZXJSZWN0LmhlaWdodCkgKiAxMDBcbiAgICAgICAgfSBlbHNlIGlmIChtb3VzZVkgPiBib3VuZHNSZWN0LmJvdHRvbSkge1xuICAgICAgICAgIHkgPVxuICAgICAgICAgICAgKChjb250YWluZXJSZWN0LmhlaWdodCAtIChjb250YWluZXJSZWN0LmJvdHRvbSAtIGJvdW5kc1JlY3QuYm90dG9tKSkgL1xuICAgICAgICAgICAgICBjb250YWluZXJSZWN0LmhlaWdodCkgKlxuICAgICAgICAgICAgMTAwXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVjZW50ZXIpIHtcbiAgICAgICAgICB4ID0geE91dE9mQm91bmRzID8geENlbnRlciA6IHhcbiAgICAgICAgICB5ID0geU91dE9mQm91bmRzID8geUNlbnRlciA6IHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4geyB4LCB5IH1cbiAgICB9LFxuICAgIFtib3VuZHNSZWYsIGNvbnRhaW5lclJlZl0sXG4gIClcblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgc2V0SXNEcmFnZ2luZyh0cnVlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKCFpc0RyYWdnaW5nKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSlcblxuICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICB9XG5cbiAgY29uc3Qgb25Ecm9wID0gKCkgPT4ge1xuICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gICAgb25EcmFnRW5kKHBvc2l0aW9uKVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNEcmFnZ2luZyB8fCAhZHJhZ1JlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoY2hlY2tCb3VuZHMpIHtcbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBsZWZ0LCB0b3AsIHdpZHRoIH0gPSBkcmFnUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gZ2V0Q29vcmRpbmF0ZXMobGVmdCArIHdpZHRoIC8gMiwgdG9wICsgaGVpZ2h0IC8gMiwgdHJ1ZSlcbiAgICAgIG9uRHJhZ0VuZCh7IHgsIHkgfSlcbiAgICAgIHNldFBvc2l0aW9uKHsgeCwgeSB9KVxuICAgICAgc2V0Q2hlY2tCb3VuZHMoZmFsc2UpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH0sIFtnZXRDb29yZGluYXRlcywgaXNEcmFnZ2luZywgY2hlY2tCb3VuZHMsIHNldENoZWNrQm91bmRzLCBwb3NpdGlvbi54LCBwb3NpdGlvbi55LCBvbkRyYWdFbmRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0UG9zaXRpb24oeyB4OiBpbml0aWFsUG9zaXRpb24ueCwgeTogaW5pdGlhbFBvc2l0aW9uLnkgfSlcbiAgfSwgW2luaXRpYWxQb3NpdGlvbi54LCBpbml0aWFsUG9zaXRpb24ueV0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1tcbiAgICAgICAgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lcmAsXG4gICAgICAgIGlzRHJhZ2dpbmcgJiYgYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlLWNvbnRhaW5lci0tZHJhZ2dpbmdgLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyl9XG4gICAgICBvbk1vdXNlTW92ZT17aGFuZGxlTW91c2VNb3ZlfVxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3NOYW1lPXtbYCR7YmFzZUNsYXNzfV9fZHJhZ2dhYmxlYCwgY2xhc3NOYW1lXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfVxuICAgICAgICBvbk1vdXNlRG93bj17aGFuZGxlTW91c2VEb3dufVxuICAgICAgICBvbk1vdXNlVXA9e29uRHJvcH1cbiAgICAgICAgcmVmPXtkcmFnUmVmfVxuICAgICAgICBzdHlsZT17eyBsZWZ0OiBgJHtwb3NpdGlvbi54fSVgLCB0b3A6IGAke3Bvc2l0aW9uLnl9JWAgfX1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiAvPlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiRWRpdFVwbG9hZCIsImJhc2VDbGFzcyIsIklucHV0IiwibmFtZSIsIm9uQ2hhbmdlIiwidmFsdWUiLCJkaXYiLCJjbGFzc05hbWUiLCJpbnB1dCIsImUiLCJ0YXJnZXQiLCJ0eXBlIiwiZG9jIiwiZmlsZU5hbWUiLCJmaWxlU3JjIiwiaW1hZ2VDYWNoZVRhZyIsInNob3dDcm9wIiwic2hvd0ZvY2FsUG9pbnQiLCJjbG9zZU1vZGFsIiwidXNlTW9kYWwiLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJmb3JtUXVlcnlQYXJhbXMiLCJzZXRGb3JtUXVlcnlQYXJhbXMiLCJ1c2VGb3JtUXVlcnlQYXJhbXMiLCJ1cGxvYWRFZGl0cyIsImNyb3AiLCJzZXRDcm9wIiwidXNlU3RhdGUiLCJoZWlnaHQiLCJ1bml0Iiwid2lkdGgiLCJ4IiwieSIsImZvY2FsUG9zaXRpb24iLCJzZXRGb2NhbFBvc2l0aW9uIiwiZm9jYWxQb2ludCIsImZvY2FsWCIsImZvY2FsWSIsImNoZWNrQm91bmRzIiwic2V0Q2hlY2tCb3VuZHMiLCJvcmlnaW5hbEhlaWdodCIsInNldE9yaWdpbmFsSGVpZ2h0Iiwib3JpZ2luYWxXaWR0aCIsInNldE9yaWdpbmFsV2lkdGgiLCJmb2NhbFdyYXBSZWYiLCJ1c2VSZWYiLCJpbWFnZVJlZiIsImNyb3BSZWYiLCJmaW5lVHVuZUNyb3AiLCJkaW1lbnNpb24iLCJpbnRWYWx1ZSIsInBhcnNlSW50IiwicGVyY2VudGFnZSIsImZpbmVUdW5lRm9jYWxQb3NpdGlvbiIsImNvb3JkaW5hdGUiLCJwcmV2UG9zaXRpb24iLCJzYXZlRWRpdHMiLCJ1bmRlZmluZWQiLCJlZGl0RHJhd2VyU2x1ZyIsIm9uRHJhZ0VuZCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJjZW50ZXJGb2NhbFBvaW50IiwiY29udGFpbmVyUmVjdCIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJib3VuZHNSZWN0IiwieENlbnRlciIsImxlZnQiLCJ5Q2VudGVyIiwidG9wIiwiZmlsZVNyY1RvVXNlIiwiaDIiLCJ0aXRsZSIsIkJ1dHRvbiIsImFyaWEtbGFiZWwiLCJidXR0b25TdHlsZSIsIm9uQ2xpY2siLCJyZWYiLCJzdHlsZSIsImFzcGVjdFJhdGlvIiwiUmVhY3RDcm9wIiwiXyIsImMiLCJvbkNvbXBsZXRlIiwicmVuZGVyU2VsZWN0aW9uQWRkb24iLCJpbWciLCJhbHQiLCJvbkxvYWQiLCJjdXJyZW50VGFyZ2V0IiwibmF0dXJhbEhlaWdodCIsIm5hdHVyYWxXaWR0aCIsInNyYyIsIkRyYWdnYWJsZUVsZW1lbnQiLCJib3VuZHNSZWYiLCJjb250YWluZXJSZWYiLCJpbml0aWFsUG9zaXRpb24iLCJQbHVzIiwiaDMiLCJzcGFuIiwidG9GaXhlZCIsImNoaWxkcmVuIiwicG9zaXRpb24iLCJzZXRQb3NpdGlvbiIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiZHJhZ1JlZiIsImdldENvb3JkaW5hdGVzIiwibW91c2VYQXJnIiwibW91c2VZQXJnIiwicmVjZW50ZXIiLCJtb3VzZVgiLCJtb3VzZVkiLCJ4T3V0T2ZCb3VuZHMiLCJyaWdodCIsInlPdXRPZkJvdW5kcyIsImJvdHRvbSIsImhhbmRsZU1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVNb3VzZU1vdmUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm9uRHJvcCIsInVzZUVmZmVjdCIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwib25Nb3VzZU1vdmUiLCJidXR0b24iLCJvbk1vdXNlRG93biIsIm9uTW91c2VVcCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEyQmFBOzs7ZUFBQUE7Ozt1QkEzQlk7K0RBQ2U7OEJBQ1Q7dUVBQ2tCO1FBQzFDOzZEQUlVO2lDQUNrQjt3QkFDSjsrREFDWjtRQUNaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLE1BQU1DLFlBQVk7QUFFbEIsTUFBTUMsUUFBc0YsQ0FBQyxFQUMzRkMsSUFBSSxFQUNKQyxRQUFRLEVBQ1JDLEtBQUssRUFDTixpQkFDQyw2QkFBQ0M7UUFBSUMsV0FBVyxDQUFDLEVBQUVOLFVBQVUsT0FBTyxDQUFDO09BQ2xDRSxvQkFDRCw2QkFBQ0s7UUFBTUwsTUFBTUE7UUFBTUMsVUFBVSxDQUFDSyxJQUFNTCxTQUFTSyxFQUFFQyxNQUFNLENBQUNMLEtBQUs7UUFBR00sTUFBSztRQUFTTixPQUFPQTs7QUFJaEYsTUFBTUwsYUFPUixDQUFDLEVBQUVZLEdBQUcsRUFBRUMsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLGFBQWEsRUFBRUMsUUFBUSxFQUFFQyxjQUFjLEVBQUU7SUFDdkUsTUFBTSxFQUFFQyxVQUFVLEVBQUUsR0FBR0MsSUFBQUEsZUFBUTtJQUMvQixNQUFNLEVBQUVDLENBQUMsRUFBRSxHQUFHQyxJQUFBQSw0QkFBYyxFQUFDO1FBQUM7UUFBVztLQUFTO0lBQ2xELE1BQU0sRUFBRUMsZUFBZSxFQUFFQyxrQkFBa0IsRUFBRSxHQUFHQyxJQUFBQSxtQ0FBa0I7SUFDbEUsTUFBTSxF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/admin/components/views/collections/Edit/Upload/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAgBpC,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAU9C,eAAO,MAAM,aAAa;;;uBAgBzB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/admin/components/views/collections/Edit/Upload/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAgBpC,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAU9C,eAAO,MAAM,aAAa;;;uBAgBzB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+JlC,CAAA"}
|
|
@@ -176,8 +176,10 @@ const Upload = (props)=>{
|
|
|
176
176
|
const canRemoveUpload = docPermissions?.update?.permission && 'delete' in docPermissions && docPermissions?.delete?.permission;
|
|
177
177
|
const hasImageSizes = collection?.upload?.imageSizes?.length > 0;
|
|
178
178
|
const hasResizeOptions = Boolean(collection?.upload?.resizeOptions);
|
|
179
|
+
// Explicitly check if set to true, default is undefined
|
|
180
|
+
const focalPointEnabled = collection?.upload?.focalPoint === true;
|
|
179
181
|
const { collection: { upload: { crop: showCrop = true, focalPoint = true } } = {} } = props;
|
|
180
|
-
const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions);
|
|
182
|
+
const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled);
|
|
181
183
|
const lastSubmittedTime = submitted ? new Date().toISOString() : null;
|
|
182
184
|
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
183
185
|
className: [
|
|
@@ -245,4 +247,4 @@ const Upload = (props)=>{
|
|
|
245
247
|
})));
|
|
246
248
|
};
|
|
247
249
|
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL2NvbGxlY3Rpb25zL0VkaXQvVXBsb2FkL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCBpc0ltYWdlIGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3VwbG9hZHMvaXNJbWFnZSdcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vLi4vLi4vLi4vZWxlbWVudHMvQnV0dG9uJ1xuaW1wb3J0IHsgRHJhd2VyLCBEcmF3ZXJUb2dnbGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vZWxlbWVudHMvRHJhd2VyJ1xuaW1wb3J0IHsgRHJvcHpvbmUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbGVtZW50cy9Ecm9wem9uZSdcbmltcG9ydCB7IEVkaXRVcGxvYWQgfSBmcm9tICcuLi8uLi8uLi8uLi9lbGVtZW50cy9FZGl0VXBsb2FkJ1xuaW1wb3J0IEZpbGVEZXRhaWxzIGZyb20gJy4uLy4uLy4uLy4uL2VsZW1lbnRzL0ZpbGVEZXRhaWxzJ1xuaW1wb3J0IFByZXZpZXdTaXplcyBmcm9tICcuLi8uLi8uLi8uLi9lbGVtZW50cy9QcmV2aWV3U2l6ZXMnXG5pbXBvcnQgVGh1bWJuYWlsIGZyb20gJy4uLy4uLy4uLy4uL2VsZW1lbnRzL1RodW1ibmFpbCdcbmltcG9ydCBFcnJvciBmcm9tICcuLi8uLi8uLi8uLi9mb3Jtcy9FcnJvcidcbmltcG9ydCB7IHVzZUZvcm1TdWJtaXR0ZWQgfSBmcm9tICcuLi8uLi8uLi8uLi9mb3Jtcy9Gb3JtL2NvbnRleHQnXG5pbXBvcnQgcmVkdWNlRmllbGRzVG9WYWx1ZXMgZnJvbSAnLi4vLi4vLi4vLi4vZm9ybXMvRm9ybS9yZWR1Y2VGaWVsZHNUb1ZhbHVlcydcbmltcG9ydCB7IGZpZWxkQmFzZUNsYXNzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZm9ybXMvZmllbGQtdHlwZXMvc2hhcmVkJ1xuaW1wb3J0IHVzZUZpZWxkIGZyb20gJy4uLy4uLy4uLy4uL2Zvcm1zL3VzZUZpZWxkJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZmlsZS1maWVsZCdcbmV4cG9ydCBjb25zdCBlZGl0RHJhd2VyU2x1ZyA9ICdlZGl0LXVwbG9hZCdcbmV4cG9ydCBjb25zdCBzaXplUHJldmlld1NsdWcgPSAncHJldmlldy1zaXplcydcblxuY29uc3QgdmFsaWRhdGUgPSAodmFsdWUpID0+IHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuICdBIGZpbGUgaXMgcmVxdWlyZWQuJ1xuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IFVwbG9hZEFjdGlvbnMgPSAoeyBjYW5FZGl0LCBzaG93U2l6ZVByZXZpZXdzIH0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigndXBsb2FkJylcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZmlsZS1tdXRhdGlvbmB9PlxuICAgICAge3Nob3dTaXplUHJldmlld3MgJiYgKFxuICAgICAgICA8RHJhd2VyVG9nZ2xlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3ByZXZpZXdTaXplc2B9IHNsdWc9e3NpemVQcmV2aWV3U2x1Z30+XG4gICAgICAgICAge3QoJ3VwbG9hZDpwcmV2aWV3U2l6ZXMnKX1cbiAgICAgICAgPC9EcmF3ZXJUb2dnbGVyPlxuICAgICAgKX1cbiAgICAgIHtjYW5FZGl0ICYmIChcbiAgICAgICAgPERyYXdlclRvZ2dsZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19lZGl0YH0gc2x1Zz17ZWRpdERyYXdlclNsdWd9PlxuICAgICAgICAgIHt0KCd1cGxvYWQ6ZWRpdEltYWdlJyl9XG4gICAgICAgIDwvRHJhd2VyVG9nZ2xlcj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFVwbG9hZDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHN1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuICBjb25zdCB7IGNvbGxlY3Rpb24sIGludGVybmFsU3RhdGUsIG9uQ2hhbmdlLCB1cGRhdGVkQXQgfSA9IHByb3BzXG4gIGNvbnN0IFtyZXBsYWNpbmdGaWxlLCBzZXRSZXBsYWNpbmdGaWxlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZmlsZVNyYywgc2V0RmlsZVNyY10gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsndXBsb2FkJywgJ2dlbmVyYWwnXSlcbiAgY29uc3QgW2RvYywgc2V0RG9jXSA9IHVzZVN0YXRlKHJlZHVjZUZpZWxkc1RvVmFsdWVzKGludGVybmFsU3RhdGUgfHwge30sIHRydWUpKVxuICBjb25zdCB7IGRvY1Blcm1pc3Npb25zIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuICBjb25zdCB7IGVycm9yTWVzc2FnZSwgc2V0VmFsdWUsIHNob3dFcnJvciwgdmFsdWUgfSA9IHVzZUZpZWxkPEZpbGU+KHtcbiAgICBwYXRoOiAnZmlsZScsXG4gICAgdmFsaWRhdGUsXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlRmlsZU5hbWVDaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB1cGRhdGVkRmlsZU5hbWUgPSBlLnRhcmdldC52YWx1ZVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgZmlsZVZhbHVlID0gdmFsdWVcbiAgICAgIC8vIENyZWF0aW5nIGEgbmV3IEZpbGUgb2JqZWN0IHdpdGggdXBkYXRlZCBwcm9wZXJ0aWVzXG4gICAgICBjb25zdCBuZXdGaWxlID0gbmV3IEZpbGUoW2ZpbGVWYWx1ZV0sIHVwZGF0ZWRGaWxlTmFtZSwgeyB0eXBlOiBmaWxlVmFsdWUudHlwZSB9KVxuICAgICAgc2V0VmFsdWUobmV3RmlsZSkgLy8gVXBkYXRpbmcgdGhlIHN0YXRlIHdpdGggdGhlIG5ldyBGaWxlIG9iamVjdFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3Rpb24gPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoZmlsZXM6IEZpbGVMaXN0KSA9PiB7XG4gICAgICBjb25zdCBmaWxlVG9VcGxvYWQgPSBmaWxlcz8uWzBdXG4gICAgICBzZXRWYWx1ZShmaWxlVG9VcGxvYWQpXG4gICAgfSxcbiAgICBbc2V0VmFsdWVdLFxuICApXG5cbiAgY29uc3QgaGFuZGxlRmlsZVJlbW92YWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UmVwbGFjaW5nRmlsZSh0cnVlKVxuICAgIHNldFZhbHVlKG51bGwpXG4gICAgc2V0RmlsZVNyYygnJylcbiAgfSwgW3NldFZhbHVlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldERvYyhyZWR1Y2VGaWVsZHNUb1ZhbHVlcyhpbnRlcm5hbFN0YXRlIHx8IHt9LCB0cnVlKSlcbiAgICBzZXRSZXBsYWNpbmdGaWxlKGZhbHNlKVxuICB9LCBbaW50ZXJuYWxTdGF0ZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxuICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xuICAgICAgICBjb25zdCBpbWdTcmMgPSBlLnRhcmdldD8ucmVzdWx0XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpbWdTcmMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgc2V0RmlsZVNyYyhpbWdTcmMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTCh2YWx1ZSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9uQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBvbkNoYW5nZSh2YWx1ZSlcbiAgICB9XG4gIH0sIFt2YWx1ZSwgb25DaGFuZ2UsIHVwZGF0ZWRBdF0pXG5cbiAgY29uc3QgY2FuUmVtb3ZlVXBsb2FkID1cbiAgICBkb2NQZXJtaXNzaW9ucz8udXBkYXRlPy5wZXJtaXNzaW9uICYmXG4gICAgJ2RlbGV0ZScgaW4gZG9jUGVybWlzc2lvbnMgJiZcbiAgICBkb2NQZXJtaXNzaW9ucz8uZGVsZXRlPy5wZXJtaXNzaW9uXG5cbiAgY29uc3QgaGFzSW1hZ2VTaXplcyA9IGNvbGxlY3Rpb24/LnVwbG9hZD8uaW1hZ2VTaXplcz8ubGVuZ3RoID4gMFxuICBjb25zdCBoYXNSZXNpemVPcHRpb25zID0gQm9vbGVhbihjb2xsZWN0aW9uPy51cGxvYWQ/LnJlc2l6ZU9wdGlvbnMpXG5cbiAgY29uc3QgeyBjb2xsZWN0aW9uOiB7IHVwbG9hZDogeyBjcm9wOiBzaG93Q3JvcCA9IHRydWUsIGZvY2FsUG9pbnQgPSB0cnVlIH0gfSA9IHt9IH0gPSBwcm9wc1xuXG4gIGNvbnN0IHNob3dGb2NhbFBvaW50ID0gZm9jYWxQb2ludCAmJiAoaGFzSW1hZ2VTaXplcyB8fCBoYXNSZXNpemVPcHRpb25zKVxuXG4gIGNvbnN0IGxhc3RTdWJtaXR0ZWRUaW1lID0gc3VibWl0dGVkID8gbmV3IERhdGUoKS50b0lTT1N0cmluZygpIDogbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e1tmaWVsZEJhc2VDbGFzcywgYmFzZUNsYXNzXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfT5cbiAgICAgIDxFcnJvciBtZXNzYWdlPXtlcnJvck1lc3NhZ2V9IHNob3dFcnJvcj17c2hvd0Vycm9yfSAvPlxuXG4gICAgICB7ZG9jLmZpbGVuYW1lICYmICFyZXBsYWNpbmdGaWxlICYmIChcbiAgICAgICAgPEZpbGVEZXRhaWxzXG4gICAgICAgICAgY2FuRWRpdD17c2hvd0Nyb3AgfHwgc2hvd0ZvY2FsUG9pbnR9XG4gICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICBkb2M9e2RvY31cbiAgICAgICAgICBoYW5kbGVSZW1vdmU9e2NhblJlbW92ZVVwbG9hZCA/IGhhbmRsZUZpbGVSZW1vdmFsIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGhhc0ltYWdlU2l6ZXM9e2hhc0ltYWdlU2l6ZXN9XG4gICAgICAgICAgaW1hZ2VDYWNoZVRhZz17bGFzdFN1Ym1pdHRlZFRpbWV9XG4gICAgICAgIC8+XG4gICAgICApfVxuXG4gICAgICB7KCFkb2MuZmlsZW5hbWUgfHwgcmVwbGFjaW5nRmlsZSkgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdXBsb2FkYH0+XG4gICAgICAgICAgeyF2YWx1ZSAmJiAoXG4gICAgICAgICAgICA8RHJvcHpvbmVcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19kcm9wem9uZWB9XG4gICAgICAgICAgICAgIG1pbWVUeXBlcz17Y29sbGVjdGlvbj8udXBsb2FkPy5taW1lVHlwZXN9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0aW9ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3ZhbHVlICYmIChcbiAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RodW1ibmFpbC13cmFwYH0+XG4gICAgICAgICAgICAgICAgPFRodW1ibmFpbCBmaWxlU3JjPXtpc0ltYWdlKHZhbHVlLnR5cGUpID8gZmlsZVNyYyA6IG51bGx9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZmlsZS1hZGp1c3RtZW50c2B9PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19maWxlbmFtZWB9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZU5hbWVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWUubmFtZX1cbiAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAge2lzSW1hZ2UodmFsdWUudHlwZSkgJiYgdmFsdWUudHlwZSAhPT0gJ2ltYWdlL3N2Zyt4bWwnICYmIChcbiAgICAgICAgICAgICAgICAgIDxVcGxvYWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgIGNhbkVkaXQ9e3Nob3dDcm9wIHx8IHNob3dGb2NhbFBvaW50fVxuICAgICAgICAgICAgICAgICAgICBzaG93U2l6ZVByZXZpZXdzPXtoYXNJbWFnZVNpemVzICYmIGRvYy5maWxlbmFtZSAmJiAhcmVwbGFjaW5nRmlsZX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cImljb24tbGFiZWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVtb3ZlYH1cbiAgICAgICAgICAgICAgICBpY29uPVwieFwiXG4gICAgICAgICAgICAgICAgaWNvblN0eWxlPVwid2l0aC1ib3JkZXJcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUZpbGVSZW1vdmFsfVxuICAgICAgICAgICAgICAgIHJvdW5kXG4gICAgICAgICAgICAgICAgdG9vbHRpcD17dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7KHZhbHVlIHx8IGRvYy5maWxlbmFtZSkgJiYgKFxuICAgICAgICA8RHJhd2VyIGhlYWRlcj17bnVsbH0gc2x1Zz17ZWRpdERyYXdlclNsdWd9PlxuICAgICAgICAgIDxFZGl0VXBsb2FkXG4gICAgICAgICAgICBkb2M9e2RvYyB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgICBmaWxlTmFtZT17dmFsdWU/Lm5hbWUgfHwgZG9jPy5maWxlbmFtZX1cbiAgICAgICAgICAgIGZpbGVTcmM9e2ZpbGVTcmMgfHwgZG9jPy51cmx9XG4gICAgICAgICAgICBpbWFnZUNhY2hlVGFnPXtsYXN0U3VibWl0dGVkVGltZX1cbiAgICAgICAgICAgIHNob3dDcm9wPXtzaG93Q3JvcH1cbiAgICAgICAgICAgIHNob3dGb2NhbFBvaW50PXtzaG93Rm9jYWxQb2ludH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0RyYXdlcj5cbiAgICAgICl9XG4gICAgICB7ZG9jICYmIGhhc0ltYWdlU2l6ZXMgJiYgKFxuICAgICAgICA8RHJhd2VyXG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19wcmV2aWV3RHJhd2VyYH1cbiAgICAgICAgICBob3ZlclRpdGxlXG4gICAgICAgICAgc2x1Zz17c2l6ZVByZXZpZXdTbHVnfVxuICAgICAgICAgIHRpdGxlPXt0KCd1cGxvYWQ6c2l6ZXNGb3InLCB7IGxhYmVsOiBkb2M/LmZpbGVuYW1lIH0pfVxuICAgICAgICA+XG4gICAgICAgICAgPFByZXZpZXdTaXplcyBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufSBkb2M9e2RvY30gLz5cbiAgICAgICAgPC9EcmF3ZXI+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiVXBsb2FkIiwiVXBsb2FkQWN0aW9ucyIsImVkaXREcmF3ZXJTbHVnIiwic2l6ZVByZXZpZXdTbHVnIiwiYmFzZUNsYXNzIiwidmFsaWRhdGUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImNhbkVkaXQiLCJzaG93U2l6ZVByZXZpZXdzIiwidCIsInVzZVRyYW5zbGF0aW9uIiwiZGl2IiwiY2xhc3NOYW1lIiwiRHJhd2VyVG9nZ2xlciIsInNsdWciLCJwcm9wcyIsInN1Ym1pdHRlZCIsInVzZUZvcm1TdWJtaXR0ZWQiLCJjb2xsZWN0aW9uIiwiaW50ZXJuYWxTdGF0ZSIsIm9uQ2hhbmdlIiwidXBkYXRlZEF0IiwicmVwbGFjaW5nRmlsZSIsInNldFJlcGxhY2luZ0ZpbGUiLCJ1c2VTdGF0ZSIsImZpbGVTcmMiLCJzZXRGaWxlU3JjIiwiZG9jIiwic2V0RG9jIiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJkb2NQZXJtaXNzaW9ucyIsInVzZURvY3VtZW50SW5mbyIsImVycm9yTWVzc2FnZSIsInNldFZhbHVlIiwic2hvd0Vycm9yIiwidXNlRmllbGQiLCJwYXRoIiwiaGFuZGxlRmlsZU5hbWVDaGFuZ2UiLCJlIiwidXBkYXRlZEZpbGVOYW1lIiwidGFyZ2V0IiwiZmlsZVZhbHVlIiwibmV3RmlsZSIsIkZpbGUiLCJ0eXBlIiwiaGFuZGxlRmlsZVNlbGVjdGlvbiIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJmaWxlcyIsImZpbGVUb1VwbG9hZCIsImhhbmRsZUZpbGVSZW1vdmFsIiwidXNlRWZmZWN0IiwiZmlsZVJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWQiLCJpbWdTcmMiLCJyZXN1bHQiLCJyZWFkQXNEYXRhVVJMIiwiY2FuUmVtb3ZlVXBsb2FkIiwidXBkYXRlIiwicGVybWlzc2lvbiIsImRlbGV0ZSIsImhhc0ltYWdlU2l6ZXMiLCJ1cGxvYWQiLCJpbWFnZVNpemVzIiwibGVuZ3RoIiwiaGFzUmVzaXplT3B0aW9ucyIsIkJvb2xlYW4iLCJyZXNpemVPcHRpb25zIiwiY3JvcCIsInNob3dDcm9wIiwiZm9jYWxQb2ludCIsInNob3dGb2NhbFBvaW50IiwibGFzdFN1Ym1pdHRlZFRpbWUiLCJEYXRlIiwidG9JU09TdHJpbmciLCJmaWVsZEJhc2VDbGFzcyIsImZpbHRlciIsImpvaW4iLCJFcnJvciIsIm1lc3NhZ2UiLCJmaWxlbmFtZSIsIkZpbGVEZXRhaWxzIiwiaGFuZGxlUmVtb3ZlIiwiaW1hZ2VDYWNoZVRhZyIsIkRyb3B6b25lIiwibWltZVR5cGVzIiwiRnJhZ21lbnQiLCJUaHVtYm5haWwiLCJpc0ltYWdlIiwiaW5wdXQiLCJuYW1lIiwiQnV0dG9uIiwiYnV0dG9uU3R5bGUiLCJpY29uIiwiaWNvblN0eWxlIiwib25DbGljayIsInJvdW5kIiwidG9vbHRpcCIsIkRyYXdlciIsImhlYWRlciIsIkVkaXRVcGxvYWQiLCJmaWxlTmFtZSIsInVybCIsImhvdmVyVGl0bGUiLCJ0aXRsZSIsImxhYmVsIiwiUHJldmlld1NpemVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQW1EYUEsTUFBTTtlQUFOQTs7SUFsQkFDLGFBQWE7ZUFBYkE7O0lBWEFDLGNBQWM7ZUFBZEE7O0lBQ0FDLGVBQWU7ZUFBZkE7OzsrREF2QjJDOzhCQUN6QjtnRUFJWDsrREFDRDt3QkFDbUI7MEJBQ2I7NEJBQ0U7b0VBQ0g7cUVBQ0M7a0VBQ0g7OERBQ0o7eUJBQ2U7NkVBQ0E7d0JBQ0Y7aUVBQ1Y7OEJBQ1c7UUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsTUFBTUMsWUFBWTtBQUNYLE1BQU1GLGlCQUFpQjtBQUN2QixNQUFNQyxrQkFBa0I7QUFFL0IsTUFBTUUsV0FBVyxDQUFDQztJQUNoQixJQUFJLENBQUNBLFNBQVNBLFVBQVVDLFdBQVc7UUFDakMsT0FBTztJQUNUO0lBRUEsT0FBTztBQUNUO0FBRU8sTUFBTU4sZ0JBQWdCLENBQUMsRUFBRU8sT0FBTyxFQUFFQyxnQkFBZ0IsRUFBRTtJQUN6RCxNQUFNLEVB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
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL2NvbGxlY3Rpb25zL0VkaXQvVXBsb2FkL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCBpc0ltYWdlIGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3VwbG9hZHMvaXNJbWFnZSdcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vLi4vLi4vLi4vZWxlbWVudHMvQnV0dG9uJ1xuaW1wb3J0IHsgRHJhd2VyLCBEcmF3ZXJUb2dnbGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vZWxlbWVudHMvRHJhd2VyJ1xuaW1wb3J0IHsgRHJvcHpvbmUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbGVtZW50cy9Ecm9wem9uZSdcbmltcG9ydCB7IEVkaXRVcGxvYWQgfSBmcm9tICcuLi8uLi8uLi8uLi9lbGVtZW50cy9FZGl0VXBsb2FkJ1xuaW1wb3J0IEZpbGVEZXRhaWxzIGZyb20gJy4uLy4uLy4uLy4uL2VsZW1lbnRzL0ZpbGVEZXRhaWxzJ1xuaW1wb3J0IFByZXZpZXdTaXplcyBmcm9tICcuLi8uLi8uLi8uLi9lbGVtZW50cy9QcmV2aWV3U2l6ZXMnXG5pbXBvcnQgVGh1bWJuYWlsIGZyb20gJy4uLy4uLy4uLy4uL2VsZW1lbnRzL1RodW1ibmFpbCdcbmltcG9ydCBFcnJvciBmcm9tICcuLi8uLi8uLi8uLi9mb3Jtcy9FcnJvcidcbmltcG9ydCB7IHVzZUZvcm1TdWJtaXR0ZWQgfSBmcm9tICcuLi8uLi8uLi8uLi9mb3Jtcy9Gb3JtL2NvbnRleHQnXG5pbXBvcnQgcmVkdWNlRmllbGRzVG9WYWx1ZXMgZnJvbSAnLi4vLi4vLi4vLi4vZm9ybXMvRm9ybS9yZWR1Y2VGaWVsZHNUb1ZhbHVlcydcbmltcG9ydCB7IGZpZWxkQmFzZUNsYXNzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZm9ybXMvZmllbGQtdHlwZXMvc2hhcmVkJ1xuaW1wb3J0IHVzZUZpZWxkIGZyb20gJy4uLy4uLy4uLy4uL2Zvcm1zL3VzZUZpZWxkJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnZmlsZS1maWVsZCdcbmV4cG9ydCBjb25zdCBlZGl0RHJhd2VyU2x1ZyA9ICdlZGl0LXVwbG9hZCdcbmV4cG9ydCBjb25zdCBzaXplUHJldmlld1NsdWcgPSAncHJldmlldy1zaXplcydcblxuY29uc3QgdmFsaWRhdGUgPSAodmFsdWUpID0+IHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuICdBIGZpbGUgaXMgcmVxdWlyZWQuJ1xuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IFVwbG9hZEFjdGlvbnMgPSAoeyBjYW5FZGl0LCBzaG93U2l6ZVByZXZpZXdzIH0pID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigndXBsb2FkJylcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZmlsZS1tdXRhdGlvbmB9PlxuICAgICAge3Nob3dTaXplUHJldmlld3MgJiYgKFxuICAgICAgICA8RHJhd2VyVG9nZ2xlciBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3ByZXZpZXdTaXplc2B9IHNsdWc9e3NpemVQcmV2aWV3U2x1Z30+XG4gICAgICAgICAge3QoJ3VwbG9hZDpwcmV2aWV3U2l6ZXMnKX1cbiAgICAgICAgPC9EcmF3ZXJUb2dnbGVyPlxuICAgICAgKX1cbiAgICAgIHtjYW5FZGl0ICYmIChcbiAgICAgICAgPERyYXdlclRvZ2dsZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19lZGl0YH0gc2x1Zz17ZWRpdERyYXdlclNsdWd9PlxuICAgICAgICAgIHt0KCd1cGxvYWQ6ZWRpdEltYWdlJyl9XG4gICAgICAgIDwvRHJhd2VyVG9nZ2xlcj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFVwbG9hZDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHN1Ym1pdHRlZCA9IHVzZUZvcm1TdWJtaXR0ZWQoKVxuICBjb25zdCB7IGNvbGxlY3Rpb24sIGludGVybmFsU3RhdGUsIG9uQ2hhbmdlLCB1cGRhdGVkQXQgfSA9IHByb3BzXG4gIGNvbnN0IFtyZXBsYWNpbmdGaWxlLCBzZXRSZXBsYWNpbmdGaWxlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZmlsZVNyYywgc2V0RmlsZVNyY10gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsndXBsb2FkJywgJ2dlbmVyYWwnXSlcbiAgY29uc3QgW2RvYywgc2V0RG9jXSA9IHVzZVN0YXRlKHJlZHVjZUZpZWxkc1RvVmFsdWVzKGludGVybmFsU3RhdGUgfHwge30sIHRydWUpKVxuICBjb25zdCB7IGRvY1Blcm1pc3Npb25zIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuICBjb25zdCB7IGVycm9yTWVzc2FnZSwgc2V0VmFsdWUsIHNob3dFcnJvciwgdmFsdWUgfSA9IHVzZUZpZWxkPEZpbGU+KHtcbiAgICBwYXRoOiAnZmlsZScsXG4gICAgdmFsaWRhdGUsXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlRmlsZU5hbWVDaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB1cGRhdGVkRmlsZU5hbWUgPSBlLnRhcmdldC52YWx1ZVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgZmlsZVZhbHVlID0gdmFsdWVcbiAgICAgIC8vIENyZWF0aW5nIGEgbmV3IEZpbGUgb2JqZWN0IHdpdGggdXBkYXRlZCBwcm9wZXJ0aWVzXG4gICAgICBjb25zdCBuZXdGaWxlID0gbmV3IEZpbGUoW2ZpbGVWYWx1ZV0sIHVwZGF0ZWRGaWxlTmFtZSwgeyB0eXBlOiBmaWxlVmFsdWUudHlwZSB9KVxuICAgICAgc2V0VmFsdWUobmV3RmlsZSkgLy8gVXBkYXRpbmcgdGhlIHN0YXRlIHdpdGggdGhlIG5ldyBGaWxlIG9iamVjdFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3Rpb24gPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoZmlsZXM6IEZpbGVMaXN0KSA9PiB7XG4gICAgICBjb25zdCBmaWxlVG9VcGxvYWQgPSBmaWxlcz8uWzBdXG4gICAgICBzZXRWYWx1ZShmaWxlVG9VcGxvYWQpXG4gICAgfSxcbiAgICBbc2V0VmFsdWVdLFxuICApXG5cbiAgY29uc3QgaGFuZGxlRmlsZVJlbW92YWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UmVwbGFjaW5nRmlsZSh0cnVlKVxuICAgIHNldFZhbHVlKG51bGwpXG4gICAgc2V0RmlsZVNyYygnJylcbiAgfSwgW3NldFZhbHVlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldERvYyhyZWR1Y2VGaWVsZHNUb1ZhbHVlcyhpbnRlcm5hbFN0YXRlIHx8IHt9LCB0cnVlKSlcbiAgICBzZXRSZXBsYWNpbmdGaWxlKGZhbHNlKVxuICB9LCBbaW50ZXJuYWxTdGF0ZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxuICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xuICAgICAgICBjb25zdCBpbWdTcmMgPSBlLnRhcmdldD8ucmVzdWx0XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpbWdTcmMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgc2V0RmlsZVNyYyhpbWdTcmMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTCh2YWx1ZSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9uQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBvbkNoYW5nZSh2YWx1ZSlcbiAgICB9XG4gIH0sIFt2YWx1ZSwgb25DaGFuZ2UsIHVwZGF0ZWRBdF0pXG5cbiAgY29uc3QgY2FuUmVtb3ZlVXBsb2FkID1cbiAgICBkb2NQZXJtaXNzaW9ucz8udXBkYXRlPy5wZXJtaXNzaW9uICYmXG4gICAgJ2RlbGV0ZScgaW4gZG9jUGVybWlzc2lvbnMgJiZcbiAgICBkb2NQZXJtaXNzaW9ucz8uZGVsZXRlPy5wZXJtaXNzaW9uXG5cbiAgY29uc3QgaGFzSW1hZ2VTaXplcyA9IGNvbGxlY3Rpb24/LnVwbG9hZD8uaW1hZ2VTaXplcz8ubGVuZ3RoID4gMFxuICBjb25zdCBoYXNSZXNpemVPcHRpb25zID0gQm9vbGVhbihjb2xsZWN0aW9uPy51cGxvYWQ/LnJlc2l6ZU9wdGlvbnMpXG4gIC8vIEV4cGxpY2l0bHkgY2hlY2sgaWYgc2V0IHRvIHRydWUsIGRlZmF1bHQgaXMgdW5kZWZpbmVkXG4gIGNvbnN0IGZvY2FsUG9pbnRFbmFibGVkID0gY29sbGVjdGlvbj8udXBsb2FkPy5mb2NhbFBvaW50ID09PSB0cnVlXG5cbiAgY29uc3QgeyBjb2xsZWN0aW9uOiB7IHVwbG9hZDogeyBjcm9wOiBzaG93Q3JvcCA9IHRydWUsIGZvY2FsUG9pbnQgPSB0cnVlIH0gfSA9IHt9IH0gPSBwcm9wc1xuXG4gIGNvbnN0IHNob3dGb2NhbFBvaW50ID0gZm9jYWxQb2ludCAmJiAoaGFzSW1hZ2VTaXplcyB8fCBoYXNSZXNpemVPcHRpb25zIHx8IGZvY2FsUG9pbnRFbmFibGVkKVxuXG4gIGNvbnN0IGxhc3RTdWJtaXR0ZWRUaW1lID0gc3VibWl0dGVkID8gbmV3IERhdGUoKS50b0lTT1N0cmluZygpIDogbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e1tmaWVsZEJhc2VDbGFzcywgYmFzZUNsYXNzXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpfT5cbiAgICAgIDxFcnJvciBtZXNzYWdlPXtlcnJvck1lc3NhZ2V9IHNob3dFcnJvcj17c2hvd0Vycm9yfSAvPlxuXG4gICAgICB7ZG9jLmZpbGVuYW1lICYmICFyZXBsYWNpbmdGaWxlICYmIChcbiAgICAgICAgPEZpbGVEZXRhaWxzXG4gICAgICAgICAgY2FuRWRpdD17c2hvd0Nyb3AgfHwgc2hvd0ZvY2FsUG9pbnR9XG4gICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICBkb2M9e2RvY31cbiAgICAgICAgICBoYW5kbGVSZW1vdmU9e2NhblJlbW92ZVVwbG9hZCA/IGhhbmRsZUZpbGVSZW1vdmFsIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGhhc0ltYWdlU2l6ZXM9e2hhc0ltYWdlU2l6ZXN9XG4gICAgICAgICAgaW1hZ2VDYWNoZVRhZz17bGFzdFN1Ym1pdHRlZFRpbWV9XG4gICAgICAgIC8+XG4gICAgICApfVxuXG4gICAgICB7KCFkb2MuZmlsZW5hbWUgfHwgcmVwbGFjaW5nRmlsZSkgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdXBsb2FkYH0+XG4gICAgICAgICAgeyF2YWx1ZSAmJiAoXG4gICAgICAgICAgICA8RHJvcHpvbmVcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19kcm9wem9uZWB9XG4gICAgICAgICAgICAgIG1pbWVUeXBlcz17Y29sbGVjdGlvbj8udXBsb2FkPy5taW1lVHlwZXN9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0aW9ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3ZhbHVlICYmIChcbiAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RodW1ibmFpbC13cmFwYH0+XG4gICAgICAgICAgICAgICAgPFRodW1ibmFpbCBmaWxlU3JjPXtpc0ltYWdlKHZhbHVlLnR5cGUpID8gZmlsZVNyYyA6IG51bGx9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZmlsZS1hZGp1c3RtZW50c2B9PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19maWxlbmFtZWB9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZU5hbWVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWUubmFtZX1cbiAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAge2lzSW1hZ2UodmFsdWUudHlwZSkgJiYgdmFsdWUudHlwZSAhPT0gJ2ltYWdlL3N2Zyt4bWwnICYmIChcbiAgICAgICAgICAgICAgICAgIDxVcGxvYWRBY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgIGNhbkVkaXQ9e3Nob3dDcm9wIHx8IHNob3dGb2NhbFBvaW50fVxuICAgICAgICAgICAgICAgICAgICBzaG93U2l6ZVByZXZpZXdzPXtoYXNJbWFnZVNpemVzICYmIGRvYy5maWxlbmFtZSAmJiAhcmVwbGFjaW5nRmlsZX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBidXR0b25TdHlsZT1cImljb24tbGFiZWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcmVtb3ZlYH1cbiAgICAgICAgICAgICAgICBpY29uPVwieFwiXG4gICAgICAgICAgICAgICAgaWNvblN0eWxlPVwid2l0aC1ib3JkZXJcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUZpbGVSZW1vdmFsfVxuICAgICAgICAgICAgICAgIHJvdW5kXG4gICAgICAgICAgICAgICAgdG9vbHRpcD17dCgnZ2VuZXJhbDpjYW5jZWwnKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7KHZhbHVlIHx8IGRvYy5maWxlbmFtZSkgJiYgKFxuICAgICAgICA8RHJhd2VyIGhlYWRlcj17bnVsbH0gc2x1Zz17ZWRpdERyYXdlclNsdWd9PlxuICAgICAgICAgIDxFZGl0VXBsb2FkXG4gICAgICAgICAgICBkb2M9e2RvYyB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgICBmaWxlTmFtZT17dmFsdWU/Lm5hbWUgfHwgZG9jPy5maWxlbmFtZX1cbiAgICAgICAgICAgIGZpbGVTcmM9e2ZpbGVTcmMgfHwgZG9jPy51cmx9XG4gICAgICAgICAgICBpbWFnZUNhY2hlVGFnPXtsYXN0U3VibWl0dGVkVGltZX1cbiAgICAgICAgICAgIHNob3dDcm9wPXtzaG93Q3JvcH1cbiAgICAgICAgICAgIHNob3dGb2NhbFBvaW50PXtzaG93Rm9jYWxQb2ludH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0RyYXdlcj5cbiAgICAgICl9XG4gICAgICB7ZG9jICYmIGhhc0ltYWdlU2l6ZXMgJiYgKFxuICAgICAgICA8RHJhd2VyXG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19wcmV2aWV3RHJhd2VyYH1cbiAgICAgICAgICBob3ZlclRpdGxlXG4gICAgICAgICAgc2x1Zz17c2l6ZVByZXZpZXdTbHVnfVxuICAgICAgICAgIHRpdGxlPXt0KCd1cGxvYWQ6c2l6ZXNGb3InLCB7IGxhYmVsOiBkb2M/LmZpbGVuYW1lIH0pfVxuICAgICAgICA+XG4gICAgICAgICAgPFByZXZpZXdTaXplcyBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufSBkb2M9e2RvY30gLz5cbiAgICAgICAgPC9EcmF3ZXI+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiVXBsb2FkIiwiVXBsb2FkQWN0aW9ucyIsImVkaXREcmF3ZXJTbHVnIiwic2l6ZVByZXZpZXdTbHVnIiwiYmFzZUNsYXNzIiwidmFsaWRhdGUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImNhbkVkaXQiLCJzaG93U2l6ZVByZXZpZXdzIiwidCIsInVzZVRyYW5zbGF0aW9uIiwiZGl2IiwiY2xhc3NOYW1lIiwiRHJhd2VyVG9nZ2xlciIsInNsdWciLCJwcm9wcyIsInN1Ym1pdHRlZCIsInVzZUZvcm1TdWJtaXR0ZWQiLCJjb2xsZWN0aW9uIiwiaW50ZXJuYWxTdGF0ZSIsIm9uQ2hhbmdlIiwidXBkYXRlZEF0IiwicmVwbGFjaW5nRmlsZSIsInNldFJlcGxhY2luZ0ZpbGUiLCJ1c2VTdGF0ZSIsImZpbGVTcmMiLCJzZXRGaWxlU3JjIiwiZG9jIiwic2V0RG9jIiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJkb2NQZXJtaXNzaW9ucyIsInVzZURvY3VtZW50SW5mbyIsImVycm9yTWVzc2FnZSIsInNldFZhbHVlIiwic2hvd0Vycm9yIiwidXNlRmllbGQiLCJwYXRoIiwiaGFuZGxlRmlsZU5hbWVDaGFuZ2UiLCJlIiwidXBkYXRlZEZpbGVOYW1lIiwidGFyZ2V0IiwiZmlsZVZhbHVlIiwibmV3RmlsZSIsIkZpbGUiLCJ0eXBlIiwiaGFuZGxlRmlsZVNlbGVjdGlvbiIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJmaWxlcyIsImZpbGVUb1VwbG9hZCIsImhhbmRsZUZpbGVSZW1vdmFsIiwidXNlRWZmZWN0IiwiZmlsZVJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWQiLCJpbWdTcmMiLCJyZXN1bHQiLCJyZWFkQXNEYXRhVVJMIiwiY2FuUmVtb3ZlVXBsb2FkIiwidXBkYXRlIiwicGVybWlzc2lvbiIsImRlbGV0ZSIsImhhc0ltYWdlU2l6ZXMiLCJ1cGxvYWQiLCJpbWFnZVNpemVzIiwibGVuZ3RoIiwiaGFzUmVzaXplT3B0aW9ucyIsIkJvb2xlYW4iLCJyZXNpemVPcHRpb25zIiwiZm9jYWxQb2ludEVuYWJsZWQiLCJmb2NhbFBvaW50IiwiY3JvcCIsInNob3dDcm9wIiwic2hvd0ZvY2FsUG9pbnQiLCJsYXN0U3VibWl0dGVkVGltZSIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsImZpZWxkQmFzZUNsYXNzIiwiZmlsdGVyIiwiam9pbiIsIkVycm9yIiwibWVzc2FnZSIsImZpbGVuYW1lIiwiRmlsZURldGFpbHMiLCJoYW5kbGVSZW1vdmUiLCJpbWFnZUNhY2hlVGFnIiwiRHJvcHpvbmUiLCJtaW1lVHlwZXMiLCJGcmFnbWVudCIsIlRodW1ibmFpbCIsImlzSW1hZ2UiLCJpbnB1dCIsIm5hbWUiLCJCdXR0b24iLCJidXR0b25TdHlsZSIsImljb24iLCJpY29uU3R5bGUiLCJvbkNsaWNrIiwicm91bmQiLCJ0b29sdGlwIiwiRHJhd2VyIiwiaGVhZGVyIiwiRWRpdFVwbG9hZCIsImZpbGVOYW1lIiwidXJsIiwiaG92ZXJUaXRsZSIsInRpdGxlIiwibGFiZWwiLCJQcmV2aWV3U2l6ZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBbURhQSxNQUFNO2VBQU5BOztJQWxCQUMsYUFBYTtlQUFiQTs7SUFYQUMsY0FBYztlQUFkQTs7SUFDQUMsZUFBZTtlQUFmQTs7OytEQXZCMkM7OEJBQ3pCO2dFQUlYOytEQUNEO3dCQUNtQjswQkFDYjs0QkFDRTtvRUFDSDtxRUFDQztrRUFDSDs4REFDSjt5QkFDZTs2RUFDQTt3QkFDRjtpRUFDVjs4QkFDVztRQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQyxZQUFZO0FBQ1gsTUFBTUYsaUJBQWlCO0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,UAAU,EAAgC,MAAM,SAAS,CAAA;AAajF,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,UAAU,EAAgC,MAAM,SAAS,CAAA;AAajF,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,iKAyP5B,CAAA"}
|
|
@@ -43,7 +43,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
43
43
|
originalDoc,
|
|
44
44
|
req
|
|
45
45
|
});
|
|
46
|
-
const { disableLocalStorage, formatOptions, imageSizes, resizeOptions, staticDir, trimOptions } = collectionConfig.upload;
|
|
46
|
+
const { disableLocalStorage, focalPoint: focalPointEnabled, formatOptions, imageSizes, resizeOptions, staticDir, trimOptions } = collectionConfig.upload;
|
|
47
47
|
let staticPath = staticDir;
|
|
48
48
|
if (staticDir.indexOf('/') !== 0) {
|
|
49
49
|
staticPath = _path.default.resolve(config.paths.configDir, staticDir);
|
|
@@ -202,7 +202,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
|
-
if (Array.isArray(imageSizes)
|
|
205
|
+
if (fileSupportsResize && (Array.isArray(imageSizes) || focalPointEnabled !== false)) {
|
|
206
206
|
req.payloadUploadSizes = {};
|
|
207
207
|
const { focalPoint, sizeData, sizesToSave } = await (0, _imageResizer.default)({
|
|
208
208
|
config: collectionConfig,
|
|
@@ -270,4 +270,4 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
270
270
|
return uploadEdits;
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSwgVXBsb2FkRWRpdHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IEZpbGVSZXRyaWV2YWxFcnJvciBmcm9tICcuLi9lcnJvcnMvRmlsZVJldHJpZXZhbEVycm9yJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgY3JvcEltYWdlIGZyb20gJy4vY3JvcEltYWdlJ1xuaW1wb3J0IHsgZ2V0RXh0ZXJuYWxGaWxlIH0gZnJvbSAnLi9nZXRFeHRlcm5hbEZpbGUnXG5pbXBvcnQgZ2V0RmlsZUJ5UGF0aCBmcm9tICcuL2dldEZpbGVCeVBhdGgnXG5pbXBvcnQgZ2V0SW1hZ2VTaXplIGZyb20gJy4vZ2V0SW1hZ2VTaXplJ1xuaW1wb3J0IGdldFNhZmVGaWxlTmFtZSBmcm9tICcuL2dldFNhZmVGaWxlbmFtZSdcbmltcG9ydCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIGZyb20gJy4vaW1hZ2VSZXNpemVyJ1xuaW1wb3J0IGlzSW1hZ2UgZnJvbSAnLi9pc0ltYWdlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M/OiBUXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgdGhyb3dPbk1pc3NpbmdGaWxlPzogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdDxUPiA9IFByb21pc2U8e1xuICBkYXRhOiBUXG4gIGZpbGVzOiBGaWxlVG9TYXZlW11cbn0+XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZpbGVEYXRhID0gYXN5bmMgPFQ+KHtcbiAgY29sbGVjdGlvbjogeyBjb25maWc6IGNvbGxlY3Rpb25Db25maWcgfSxcbiAgY29uZmlnLFxuICBkYXRhLFxuICBvcGVyYXRpb24sXG4gIG9yaWdpbmFsRG9jLFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICByZXEsXG4gIHRocm93T25NaXNzaW5nRmlsZSxcbn06IEFyZ3M8VD4pOiBSZXN1bHQ8VD4gPT4ge1xuICBpZiAoIWNvbGxlY3Rpb25Db25maWcudXBsb2FkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgbGV0IGZpbGUgPSByZXEuZmlsZXM/LmZpbGUgfHwgdW5kZWZpbmVkXG5cbiAgY29uc3QgdXBsb2FkRWRpdHMgPSBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKHtcbiAgICBkYXRhLFxuICAgIG9wZXJhdGlvbixcbiAgICBvcmlnaW5hbERvYyxcbiAgICByZXEsXG4gIH0pXG5cbiAgY29uc3QgeyBkaXNhYmxlTG9jYWxTdG9yYWdlLCBmb3JtYXRPcHRpb25zLCBpbWFnZVNpemVzLCByZXNpemVPcHRpb25zLCBzdGF0aWNEaXIsIHRyaW1PcHRpb25zIH0gPVxuICAgIGNvbGxlY3Rpb25Db25maWcudXBsb2FkXG5cbiAgbGV0IHN0YXRpY1BhdGggPSBzdGF0aWNEaXJcbiAgaWYgKHN0YXRpY0Rpci5pbmRleE9mKCcvJykgIT09IDApIHtcbiAgICBzdGF0aWNQYXRoID0gcGF0aC5yZXNvbHZlKGNvbmZpZy5wYXRocy5jb25maWdEaXIsIHN0YXRpY0RpcilcbiAgfVxuXG4gIGlmICghZmlsZSAmJiB1cGxvYWRFZGl0cyAmJiBkYXRhKSB7XG4gICAgY29uc3QgeyBmaWxlbmFtZSwgdXJsIH0gPSBkYXRhIGFzIEZpbGVEYXRhXG5cbiAgICB0cnkge1xuICAgICAgaWYgKHVybCAmJiB1cmwuc3RhcnRzV2l0aCgnLycpICYmICFkaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RmlsZUJ5UGF0aChmaWxlUGF0aClcbiAgICAgICAgZmlsZSA9IHJlc3BvbnNlIGFzIFVwbG9hZGVkRmlsZVxuICAgICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgICAgfSBlbHNlIGlmIChmaWxlbmFtZSAmJiB1cmwpIHtcbiAgICAgICAgZmlsZSA9IChhd2FpdCBnZXRFeHRlcm5hbEZpbGUoe1xuICAgICAgICAgIGRhdGE6IGRhdGEgYXMgRmlsZURhdGEsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHVwbG9hZENvbmZpZzogY29sbGVjdGlvbkNvbmZpZy51cGxvYWQsXG4gICAgICAgIH0pKSBhcyBVcGxvYWRlZEZpbGVcbiAgICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRmlsZVJldHJpZXZhbEVycm9yKHJlcS50LCBlcnIubWVzc2FnZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIWZpbGUpIHtcbiAgICBpZiAodGhyb3dPbk1pc3NpbmdGaWxlKSB0aHJvdyBuZXcgTWlzc2luZ0ZpbGUocmVxLnQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBpZiAoIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICBta2RpcnAuc3luYyhzdGF0aWNQYXRoKVxuICB9XG5cbiAgbGV0IG5ld0RhdGEgPSBkYXRhXG4gIGNvbnN0IGZpbGVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXVxuICBjb25zdCBmaWxlRGF0YTogUGFydGlhbDxGaWxlRGF0YT4gPSB7fVxuICBjb25zdCBmaWxlSXNBbmltYXRlZCA9IGZpbGUubWltZXR5cGUgPT09ICdpbWFnZS9naWYnIHx8IGZpbGUubWltZXR5cGUgPT09ICdpbWFnZS93ZWJwJ1xuICBjb25zdCBjcm9wRGF0YSA9XG4gICAgdHlwZW9mIHVwbG9hZEVkaXRzID09PSAnb2JqZWN0JyAmJiAnY3JvcCcgaW4gdXBsb2FkRWRpdHMgPyB1cGxvYWRFZGl0cy5jcm9wIDogdW5kZWZpbmVkXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBmaWxlU3VwcG9ydHNSZXNpemUgPSBjYW5SZXNpemVJbWFnZShmaWxlLm1pbWV0eXBlKVxuICAgIGxldCBmc1NhZmVOYW1lOiBzdHJpbmdcbiAgICBsZXQgc2hhcnBGaWxlOiBTaGFycCB8IHVuZGVmaW5lZFxuICAgIGxldCBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemUgfCB1bmRlZmluZWRcbiAgICBsZXQgZmlsZUJ1ZmZlcjogeyBkYXRhOiBCdWZmZXI7IGluZm86IE91dHB1dEluZm8gfVxuICAgIGxldCBleHRcbiAgICBsZXQgbWltZTogc3RyaW5nXG4gICAgY29uc3QgZmlsZUhhc0FkanVzdG1lbnRzID1cbiAgICAgIGZpbGVTdXBwb3J0c1Jlc2l6ZSAmJlxuICAgICAgQm9vbGVhbihyZXNpemVPcHRpb25zIHx8IGZvcm1hdE9wdGlvbnMgfHwgdHJpbU9wdGlvbnMgfHwgZmlsZS50ZW1wRmlsZVBhdGgpXG5cbiAgICBjb25zdCBzaGFycE9wdGlvbnM6IFNoYXJwT3B0aW9ucyA9IHt9XG5cbiAgICBpZiAoZmlsZUlzQW5pbWF0ZWQpIHNoYXJwT3B0aW9ucy5hbmltYXRlZCA9IHRydWVcblxuICAgIGlmIChmaWxlSGFzQWRqdXN0bWVudHMpIHtcbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUuZGF0YSwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc2l6ZU9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnJlc2l6ZShyZXNpemVPcHRpb25zKVxuICAgICAgfVxuICAgICAgaWYgKGZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnRvRm9ybWF0KGZvcm1hdE9wdGlvbnMuZm9ybWF0LCBmb3JtYXRPcHRpb25zLm9wdGlvbnMpXG4gICAgICB9XG4gICAgICBpZiAodHJpbU9wdGlvbnMpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnRyaW0odHJpbU9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVTdXBwb3J0c1Jlc2l6ZSB8fCBpc0ltYWdlKGZpbGUubWltZXR5cGUpKSB7XG4gICAgICBkaW1lbnNpb25zID0gYXdhaXQgZ2V0SW1hZ2VTaXplKGZpbGUpXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGRpbWVuc2lvbnMud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgfVxuXG4gICAgaWYgKHNoYXJwRmlsZSkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBzaGFycEZpbGUubWV0YWRhdGEoKVxuICAgICAgZmlsZUJ1ZmZlciA9IGF3YWl0IHNoYXJwRmlsZS50b0J1ZmZlcih7IHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlIH0pXG4gICAgICA7KHsgZXh0LCBtaW1lIH0gPSBhd2FpdCBmcm9tQnVmZmVyKGZpbGVCdWZmZXIuZGF0YSkpIC8vIFRoaXMgaXMgZ2V0dGluZyBhbiBpbmNvcnJlY3QgZ2lmIGhlaWdodCBiYWNrLlxuICAgICAgZmlsZURhdGEud2lkdGggPSBmaWxlQnVmZmVyLmluZm8ud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHRcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5pbmZvLnNpemVcblxuICAgICAgLy8gQW5pbWF0ZWQgR0lGcyArIFdlYlAgYWdncmVnYXRlIHRoZSBoZWlnaHQgZnJvbSBldmVyeSBmcmFtZSwgc28gd2UgbmVlZCB0byB1c2UgZGl2aWRlIGJ5IG51bWJlciBvZiBwYWdlc1xuICAgICAgaWYgKG1ldGFkYXRhLnBhZ2VzKSB7XG4gICAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHQgLyBtZXRhZGF0YS5wYWdlc1xuICAgICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGVCdWZmZXIuZGF0YS5sZW5ndGhcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWltZSA9IGZpbGUubWltZXR5cGVcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZS5zaXplXG5cbiAgICAgIGlmIChmaWxlLm5hbWUuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICBleHQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXh0ID0gJydcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZHVzdCBTVkcgbWltZSB0eXBlLiBmcm9tQnVmZmVyIG1vZGlmaWVzIGl0LlxuICAgIGlmIChtaW1lID09PSAnYXBwbGljYXRpb24veG1sJyAmJiBleHQgPT09ICdzdmcnKSBtaW1lID0gJ2ltYWdlL3N2Zyt4bWwnXG4gICAgZmlsZURhdGEubWltZVR5cGUgPSBtaW1lXG5cbiAgICBjb25zdCBiYXNlRmlsZW5hbWUgPSBzYW5pdGl6ZShmaWxlLm5hbWUuc3Vic3RyaW5nKDAsIGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKSB8fCBmaWxlLm5hbWUpXG4gICAgZnNTYWZlTmFtZSA9IGAke2Jhc2VGaWxlbmFtZX0ke2V4dCA/IGAuJHtleHR9YCA6ICcnfWBcblxuICAgIGlmICghb3ZlcndyaXRlRXhpc3RpbmdGaWxlcykge1xuICAgICAgZnNTYWZlTmFtZSA9IGF3YWl0IGdldFNhZmVGaWxlTmFtZSh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIGRlc2lyZWRGaWxlbmFtZTogZnNTYWZlTmFtZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzdGF0aWNQYXRoLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBmaWxlRGF0YS5maWxlbmFtZSA9IGZzU2FmZU5hbWVcbiAgICBsZXQgZmlsZUZvclJlc2l6ZSA9IGZpbGVcblxuICAgIGlmIChjcm9wRGF0YSkge1xuICAgICAgY29uc3QgeyBkYXRhOiBjcm9wcGVkSW1hZ2UsIGluZm8gfSA9IGF3YWl0IGNyb3BJbWFnZSh7IGNyb3BEYXRhLCBkaW1lbnNpb25zLCBmaWxlIH0pXG5cbiAgICAgIGZpbGVzVG9TYXZlLnB1c2goe1xuICAgICAgICBidWZmZXI6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgcGF0aDogYCR7c3RhdGljUGF0aH0vJHtmc1NhZmVOYW1lfWAsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRm9yUmVzaXplID0ge1xuICAgICAgICAuLi5maWxlLFxuICAgICAgICBkYXRhOiBjcm9wcGVkSW1hZ2UsXG4gICAgICAgIHNpemU6IGluZm8uc2l6ZSxcbiAgICAgIH1cbiAgICAgIGZpbGVEYXRhLndpZHRoID0gaW5mby53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gaW5mby5oZWlnaHRcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gaW5mby5zaXplXG5cbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZS50ZW1wRmlsZVBhdGgsIGNyb3BwZWRJbWFnZSkgLy8gd3JpdGUgZmlsZUJ1ZmZlciB0byB0aGUgdGVtcCBwYXRoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXEuZmlsZXMuZmlsZSA9IGZpbGVGb3JSZXNpemVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgLy8gSWYgdXNpbmcgdGVtcCBmaWxlcyBhbmQgdGhlIGltYWdlIGlzIGJlaW5nIHJlc2l6ZWQsIHdyaXRlIHRoZSBmaWxlIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgIGlmIChmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlLnRlbXBGaWxlUGF0aCwgZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEpIC8vIHdyaXRlIGZpbGVCdWZmZXIgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFzc2lnbiB0aGUgX3Bvc3NpYmx5IG1vZGlmaWVkXyBmaWxlIHRvIHRoZSByZXF1ZXN0IG9iamVjdFxuICAgICAgICAgIHJlcS5maWxlcy5maWxlID0ge1xuICAgICAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgICAgIGRhdGE6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICAgICAgc2l6ZTogZmlsZUJ1ZmZlcj8uaW5mby5zaXplLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGltYWdlU2l6ZXMpICYmIGZpbGVTdXBwb3J0c1Jlc2l6ZSkge1xuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplcyA9IHt9XG4gICAgICBjb25zdCB7IGZvY2FsUG9pbnQsIHNpemVEYXRhLCBzaXplc1RvU2F2ZSB9ID0gYXdhaXQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgZGltZW5zaW9uczogIWNyb3BEYXRhXG4gICAgICAgICAgPyBkaW1lbnNpb25zXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLmRpbWVuc2lvbnMsXG4gICAgICAgICAgICAgIGhlaWdodDogZmlsZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogZmlsZURhdGEud2lkdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICBmaWxlOiBmaWxlRm9yUmVzaXplLFxuICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2F2ZWRGaWxlbmFtZTogZnNTYWZlTmFtZSB8fCBmaWxlLm5hbWUsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICAgIHVwbG9hZEVkaXRzLFxuICAgICAgfSlcblxuICAgICAgZmlsZURhdGEuc2l6ZXMgPSBzaXplRGF0YVxuICAgICAgZmlsZURhdGEuZm9jYWxYID0gZm9jYWxQb2ludD8ueFxuICAgICAgZmlsZURhdGEuZm9jYWxZID0gZm9jYWxQb2ludD8ueVxuICAgICAgZmlsZXNUb1NhdmUucHVzaCguLi5zaXplc1RvU2F2ZSlcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJlcS5wYXlsb2FkLmxvZ2dlci5lcnJvcih7IGVyciwgbXNnOiAnRXJyb3IgdXBsb2FkaW5nIGZpbGUnIH0pXG4gICAgdGhyb3cgbmV3IEZpbGVVcGxvYWRFcnJvcihyZXEudClcbiAgfVxuXG4gIG5ld0RhdGEgPSB7XG4gICAgLi4ubmV3RGF0YSxcbiAgICAuLi5maWxlRGF0YSxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogbmV3RGF0YSxcbiAgICBmaWxlczogZmlsZXNUb1NhdmUsXG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSB1cGxvYWQgZWRpdHMgZnJvbSByZXEgb3IgaW5jb21pbmcgZGF0YVxuICovXG5mdW5jdGlvbiBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKGFyZ3M6IHtcbiAgZGF0YTogdW5rbm93blxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M6IHVua25vd25cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxufSk6IFVwbG9hZEVkaXRzIHtcbiAgY29uc3QgeyBkYXRhLCBvcGVyYXRpb24sIG9yaWdpbmFsRG9jLCByZXEgfSA9IGFyZ3NcblxuICAvLyBHZXQgaW50ZW5kZWQgZm9jYWwgcG9pbnQgY2hhbmdlIGZyb20gcXVlcnkgc3RyaW5nIG9yIGluY29taW5nIGRhdGFcbiAgY29uc3Qge1xuICAgIHVwbG9hZEVkaXRzID0ge30sXG4gIH06IHtcbiAgICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG4gIH0gPSByZXEucXVlcnkgfHwge31cblxuICBpZiAodXBsb2FkRWRpdHMuZm9jYWxQb2ludCkgcmV0dXJuIHVwbG9hZEVkaXRzXG5cbiAgY29uc3QgaW5jb21pbmdEYXRhID0gZGF0YSBhcyBGaWxlRGF0YVxuICBjb25zdCBvcmlnRG9jID0gb3JpZ2luYWxEb2MgYXMgRmlsZURhdGFcblxuICAvLyBJZiBubyBjaGFuZ2UgaW4gZm9jYWwgcG9pbnQsIHJldHVybiB1bmRlZmluZWQuXG4gIC8vIFRoaXMgcHJldmVudHMgYSByZWZvY2FsIG9wZXJhdGlvbiB0cmlnZ2VyZWQgZnJvbSBhZG1pbiwgYmVjYXVzZSBpdCBhbHdheXMgc2VuZHMgdGhlIGZvY2FsIHBvaW50LlxuICBpZiAob3JpZ0RvYyAmJiBpbmNvbWluZ0RhdGEuZm9jYWxYID09PSBvcmlnRG9jLmZvY2FsWCAmJiBpbmNvbWluZ0RhdGEuZm9jYWxZID09PSBvcmlnRG9jLmZvY2FsWSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGlmIChpbmNvbWluZ0RhdGEuZm9jYWxYICYmIGluY29taW5nRGF0YS5mb2NhbFkpIHtcbiAgICB1cGxvYWRFZGl0cy5mb2NhbFBvaW50ID0ge1xuICAgICAgeDogaW5jb21pbmdEYXRhLmZvY2FsWCxcbiAgICAgIHk6IGluY29taW5nRGF0YS5mb2NhbFksXG4gICAgfVxuICAgIHJldHVybiB1cGxvYWRFZGl0c1xuICB9XG5cbiAgLy8gSWYgbm8gZm9jYWwgcG9pbnQgaXMgc2V0LCBkZWZhdWx0IHRvIGNlbnRlclxuICBpZiAob3BlcmF0aW9uID09PSAnY3JlYXRlJykge1xuICAgIHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQgPSB7XG4gICAgICB4OiA1MCxcbiAgICAgIHk6IDUwLFxuICAgIH1cbiAgfVxuICByZXR1cm4gdXBsb2FkRWRpdHNcbn1cbiJdLCJuYW1lcyI6WyJnZW5lcmF0ZUZpbGVEYXRhIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImNvbGxlY3Rpb25Db25maWciLCJkYXRhIiwib3BlcmF0aW9uIiwib3JpZ2luYWxEb2MiLCJvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzIiwicmVxIiwidGhyb3dPbk1pc3NpbmdGaWxlIiwidXBsb2FkIiwiZmlsZXMiLCJmaWxlIiwidW5kZWZpbmVkIiwidXBsb2FkRWRpdHMiLCJwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhIiwiZGlzYWJsZUxvY2FsU3RvcmFnZSIsImZvcm1hdE9wdGlvbnMiLCJpbWFnZVNpemVzIiwicmVzaXplT3B0aW9ucyIsInN0YXRpY0RpciIsInRyaW1PcHRpb25zIiwic3RhdGljUGF0aCIsImluZGV4T2YiLCJwYXRoIiwicmVzb2x2ZSIsInBhdGhzIiwiY29uZmlnRGlyIiwiZmlsZW5hbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwiZmlsZVBhdGgiLCJyZXNwb25zZSIsImdldEZpbGVCeVBhdGgiLCJnZXRFeHRlcm5hbEZpbGUiLCJ1cGxvYWRDb25maWciLCJlcnIiLCJFcnJvciIsIkZpbGVSZXRyaWV2YWxFcnJvciIsInQiLCJtZXNzYWdlIiwiTWlzc2luZ0ZpbGUiLCJta2RpcnAiLCJzeW5jIiwibmV3RGF0YSIsImZpbGVzVG9TYXZlIiwiZmlsZURhdGEiLCJmaWxlSXNBbmltYXRlZCIsIm1pbWV0eXBlIiwiY3JvcERhdGEiLCJjcm9wIiwiZmlsZVN1cHBvcnRzUmVzaXplIiwiY2FuUmVzaXplSW1hZ2UiLCJmc1NhZmVOYW1lIiwic2hhcnBGaWxlIiwiZGltZW5zaW9ucyIsImZpbGVCdWZmZXIiLCJleHQiLCJtaW1lIiwiZmlsZUhhc0FkanVzdG1lbnRzIiwiQm9vbGVhbiIsInRlbXBGaWxlUGF0aCIsInNoYXJwT3B0aW9ucyIsImFuaW1hdGVkIiwic2hhcnAiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltIiwiaXNJbWFnZSIsImdldEltYWdlU2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwibWV0YWRhdGEiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwiZnJvbUJ1ZmZlciIsImluZm8iLCJmaWxlc2l6ZSIsInNpemUiLCJwYWdlcyIsImxlbmd0aCIsIm5hbWUiLCJpbmNsdWRlcyIsInNwbGl0IiwicG9wIiwibWltZVR5cGUiLCJiYXNlRmlsZW5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZ2V0U2FmZUZpbGVOYW1lIiwiY29sbGVjdGlvblNsdWciLCJzbHVnIiwiZGVzaXJlZEZpbGVuYW1lIiwiZmlsZUZvclJlc2l6ZSIsImNyb3BwZWRJbWFnZSIsImNyb3BJbWFnZSIsInB1c2giLCJidWZmZXIiLCJmcyIsInByb21pc2VzIiwid3JpdGVGaWxlIiwiQXJyYXkiLCJpc0FycmF5IiwicGF5bG9hZFVwbG9hZFNpemVzIiwiZm9jYWxQb2ludCIsInNpemVEYXRhIiwic2l6ZXNUb1NhdmUiLCJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwic2F2ZWRGaWxlbmFtZSIsInNpemVzIiwiZm9jYWxYIiwieCIsImZvY2FsWSIsInkiLCJwYXlsb2FkIiwibG9nZ2VyIiwiZXJyb3IiLCJtc2ciLCJGaWxlVXBsb2FkRXJyb3IiLCJhcmdzIiwicXVlcnkiLCJpbmNvbWluZ0RhdGEiLCJvcmlnRG9jIl0sIm1hcHBpbmdzIjoiOzs7OytCQTBDYUE7OztlQUFBQTs7OzBCQXZDYzsyREFDWjsrREFDSTs2REFDRjt5RUFDSTs4REFDSDt3QkFPMkI7MkVBQ2Q7dUVBQ0o7a0VBQ0w7aUNBQ1U7c0VBQ047cUVBQ0Q7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
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSwgVXBsb2FkRWRpdHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IEZpbGVSZXRyaWV2YWxFcnJvciBmcm9tICcuLi9lcnJvcnMvRmlsZVJldHJpZXZhbEVycm9yJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgY3JvcEltYWdlIGZyb20gJy4vY3JvcEltYWdlJ1xuaW1wb3J0IHsgZ2V0RXh0ZXJuYWxGaWxlIH0gZnJvbSAnLi9nZXRFeHRlcm5hbEZpbGUnXG5pbXBvcnQgZ2V0RmlsZUJ5UGF0aCBmcm9tICcuL2dldEZpbGVCeVBhdGgnXG5pbXBvcnQgZ2V0SW1hZ2VTaXplIGZyb20gJy4vZ2V0SW1hZ2VTaXplJ1xuaW1wb3J0IGdldFNhZmVGaWxlTmFtZSBmcm9tICcuL2dldFNhZmVGaWxlbmFtZSdcbmltcG9ydCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIGZyb20gJy4vaW1hZ2VSZXNpemVyJ1xuaW1wb3J0IGlzSW1hZ2UgZnJvbSAnLi9pc0ltYWdlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M/OiBUXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgdGhyb3dPbk1pc3NpbmdGaWxlPzogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdDxUPiA9IFByb21pc2U8e1xuICBkYXRhOiBUXG4gIGZpbGVzOiBGaWxlVG9TYXZlW11cbn0+XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZpbGVEYXRhID0gYXN5bmMgPFQ+KHtcbiAgY29sbGVjdGlvbjogeyBjb25maWc6IGNvbGxlY3Rpb25Db25maWcgfSxcbiAgY29uZmlnLFxuICBkYXRhLFxuICBvcGVyYXRpb24sXG4gIG9yaWdpbmFsRG9jLFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICByZXEsXG4gIHRocm93T25NaXNzaW5nRmlsZSxcbn06IEFyZ3M8VD4pOiBSZXN1bHQ8VD4gPT4ge1xuICBpZiAoIWNvbGxlY3Rpb25Db25maWcudXBsb2FkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgbGV0IGZpbGUgPSByZXEuZmlsZXM/LmZpbGUgfHwgdW5kZWZpbmVkXG5cbiAgY29uc3QgdXBsb2FkRWRpdHMgPSBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKHtcbiAgICBkYXRhLFxuICAgIG9wZXJhdGlvbixcbiAgICBvcmlnaW5hbERvYyxcbiAgICByZXEsXG4gIH0pXG5cbiAgY29uc3Qge1xuICAgIGRpc2FibGVMb2NhbFN0b3JhZ2UsXG4gICAgZm9jYWxQb2ludDogZm9jYWxQb2ludEVuYWJsZWQsXG4gICAgZm9ybWF0T3B0aW9ucyxcbiAgICBpbWFnZVNpemVzLFxuICAgIHJlc2l6ZU9wdGlvbnMsXG4gICAgc3RhdGljRGlyLFxuICAgIHRyaW1PcHRpb25zLFxuICB9ID0gY29sbGVjdGlvbkNvbmZpZy51cGxvYWRcblxuICBsZXQgc3RhdGljUGF0aCA9IHN0YXRpY0RpclxuICBpZiAoc3RhdGljRGlyLmluZGV4T2YoJy8nKSAhPT0gMCkge1xuICAgIHN0YXRpY1BhdGggPSBwYXRoLnJlc29sdmUoY29uZmlnLnBhdGhzLmNvbmZpZ0Rpciwgc3RhdGljRGlyKVxuICB9XG5cbiAgaWYgKCFmaWxlICYmIHVwbG9hZEVkaXRzICYmIGRhdGEpIHtcbiAgICBjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSA9IGRhdGEgYXMgRmlsZURhdGFcblxuICAgIHRyeSB7XG4gICAgICBpZiAodXJsICYmIHVybC5zdGFydHNXaXRoKCcvJykgJiYgIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ZpbGVuYW1lfWBcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQnlQYXRoKGZpbGVQYXRoKVxuICAgICAgICBmaWxlID0gcmVzcG9uc2UgYXMgVXBsb2FkZWRGaWxlXG4gICAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMgPSB0cnVlXG4gICAgICB9IGVsc2UgaWYgKGZpbGVuYW1lICYmIHVybCkge1xuICAgICAgICBmaWxlID0gKGF3YWl0IGdldEV4dGVybmFsRmlsZSh7XG4gICAgICAgICAgZGF0YTogZGF0YSBhcyBGaWxlRGF0YSxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgdXBsb2FkQ29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZCxcbiAgICAgICAgfSkpIGFzIFVwbG9hZGVkRmlsZVxuICAgICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBGaWxlUmV0cmlldmFsRXJyb3IocmVxLnQsIGVyci5tZXNzYWdlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghZmlsZSkge1xuICAgIGlmICh0aHJvd09uTWlzc2luZ0ZpbGUpIHRocm93IG5ldyBNaXNzaW5nRmlsZShyZXEudClcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZmlsZXM6IFtdLFxuICAgIH1cbiAgfVxuXG4gIGlmICghZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgIG1rZGlycC5zeW5jKHN0YXRpY1BhdGgpXG4gIH1cblxuICBsZXQgbmV3RGF0YSA9IGRhdGFcbiAgY29uc3QgZmlsZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdXG4gIGNvbnN0IGZpbGVEYXRhOiBQYXJ0aWFsPEZpbGVEYXRhPiA9IHt9XG4gIGNvbnN0IGZpbGVJc0FuaW1hdGVkID0gZmlsZS5taW1ldHlwZSA9PT0gJ2ltYWdlL2dpZicgfHwgZmlsZS5taW1ldHlwZSA9PT0gJ2ltYWdlL3dlYnAnXG4gIGNvbnN0IGNyb3BEYXRhID1cbiAgICB0eXBlb2YgdXBsb2FkRWRpdHMgPT09ICdvYmplY3QnICYmICdjcm9wJyBpbiB1cGxvYWRFZGl0cyA/IHVwbG9hZEVkaXRzLmNyb3AgOiB1bmRlZmluZWRcblxuICB0cnkge1xuICAgIGNvbnN0IGZpbGVTdXBwb3J0c1Jlc2l6ZSA9IGNhblJlc2l6ZUltYWdlKGZpbGUubWltZXR5cGUpXG4gICAgbGV0IGZzU2FmZU5hbWU6IHN0cmluZ1xuICAgIGxldCBzaGFycEZpbGU6IFNoYXJwIHwgdW5kZWZpbmVkXG4gICAgbGV0IGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZSB8IHVuZGVmaW5lZFxuICAgIGxldCBmaWxlQnVmZmVyOiB7IGRhdGE6IEJ1ZmZlcjsgaW5mbzogT3V0cHV0SW5mbyB9XG4gICAgbGV0IGV4dFxuICAgIGxldCBtaW1lOiBzdHJpbmdcbiAgICBjb25zdCBmaWxlSGFzQWRqdXN0bWVudHMgPVxuICAgICAgZmlsZVN1cHBvcnRzUmVzaXplICYmXG4gICAgICBCb29sZWFuKHJlc2l6ZU9wdGlvbnMgfHwgZm9ybWF0T3B0aW9ucyB8fCB0cmltT3B0aW9ucyB8fCBmaWxlLnRlbXBGaWxlUGF0aClcblxuICAgIGNvbnN0IHNoYXJwT3B0aW9uczogU2hhcnBPcHRpb25zID0ge31cblxuICAgIGlmIChmaWxlSXNBbmltYXRlZCkgc2hhcnBPcHRpb25zLmFuaW1hdGVkID0gdHJ1ZVxuXG4gICAgaWYgKGZpbGVIYXNBZGp1c3RtZW50cykge1xuICAgICAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnAoZmlsZS5kYXRhLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzaXplT3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUucmVzaXplKHJlc2l6ZU9wdGlvbnMpXG4gICAgICB9XG4gICAgICBpZiAoZm9ybWF0T3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUudG9Gb3JtYXQoZm9ybWF0T3B0aW9ucy5mb3JtYXQsIGZvcm1hdE9wdGlvbnMub3B0aW9ucylcbiAgICAgIH1cbiAgICAgIGlmICh0cmltT3B0aW9ucykge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycEZpbGUudHJpbSh0cmltT3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsZVN1cHBvcnRzUmVzaXplIHx8IGlzSW1hZ2UoZmlsZS5taW1ldHlwZSkpIHtcbiAgICAgIGRpbWVuc2lvbnMgPSBhd2FpdCBnZXRJbWFnZVNpemUoZmlsZSlcbiAgICAgIGZpbGVEYXRhLndpZHRoID0gZGltZW5zaW9ucy53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZGltZW5zaW9ucy5oZWlnaHRcbiAgICB9XG5cbiAgICBpZiAoc2hhcnBGaWxlKSB7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IHNoYXJwRmlsZS5tZXRhZGF0YSgpXG4gICAgICBmaWxlQnVmZmVyID0gYXdhaXQgc2hhcnBGaWxlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcbiAgICAgIDsoeyBleHQsIG1pbWUgfSA9IGF3YWl0IGZyb21CdWZmZXIoZmlsZUJ1ZmZlci5kYXRhKSkgLy8gVGhpcyBpcyBnZXR0aW5nIGFuIGluY29ycmVjdCBnaWYgaGVpZ2h0IGJhY2suXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGZpbGVCdWZmZXIuaW5mby53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlQnVmZmVyLmluZm8uc2l6ZVxuXG4gICAgICAvLyBBbmltYXRlZCBHSUZzICsgV2ViUCBhZ2dyZWdhdGUgdGhlIGhlaWdodCBmcm9tIGV2ZXJ5IGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHVzZSBkaXZpZGUgYnkgbnVtYmVyIG9mIHBhZ2VzXG4gICAgICBpZiAobWV0YWRhdGEucGFnZXMpIHtcbiAgICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodCAvIG1ldGFkYXRhLnBhZ2VzXG4gICAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5kYXRhLmxlbmd0aFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtaW1lID0gZmlsZS5taW1ldHlwZVxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlLnNpemVcblxuICAgICAgaWYgKGZpbGUubmFtZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICAgIGV4dCA9IGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHQgPSAnJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkdXN0IFNWRyBtaW1lIHR5cGUuIGZyb21CdWZmZXIgbW9kaWZpZXMgaXQuXG4gICAgaWYgKG1pbWUgPT09ICdhcHBsaWNhdGlvbi94bWwnICYmIGV4dCA9PT0gJ3N2ZycpIG1pbWUgPSAnaW1hZ2Uvc3ZnK3htbCdcbiAgICBmaWxlRGF0YS5taW1lVHlwZSA9IG1pbWVcblxuICAgIGNvbnN0IGJhc2VGaWxlbmFtZSA9IHNhbml0aXplKGZpbGUubmFtZS5zdWJzdHJpbmcoMCwgZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJykpIHx8IGZpbGUubmFtZSlcbiAgICBmc1NhZmVOYW1lID0gYCR7YmFzZUZpbGVuYW1lfSR7ZXh0ID8gYC4ke2V4dH1gIDogJyd9YFxuXG4gICAgaWYgKCFvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzKSB7XG4gICAgICBmc1NhZmVOYW1lID0gYXdhaXQgZ2V0U2FmZUZpbGVOYW1lKHtcbiAgICAgICAgY29sbGVjdGlvblNsdWc6IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgZGVzaXJlZEZpbGVuYW1lOiBmc1NhZmVOYW1lLFxuICAgICAgICByZXEsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGZpbGVEYXRhLmZpbGVuYW1lID0gZnNTYWZlTmFtZVxuICAgIGxldCBmaWxlRm9yUmVzaXplID0gZmlsZVxuXG4gICAgaWYgKGNyb3BEYXRhKSB7XG4gICAgICBjb25zdCB7IGRhdGE6IGNyb3BwZWRJbWFnZSwgaW5mbyB9ID0gYXdhaXQgY3JvcEltYWdlKHsgY3JvcERhdGEsIGRpbWVuc2lvbnMsIGZpbGUgfSlcblxuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogY3JvcHBlZEltYWdlLFxuICAgICAgICBwYXRoOiBgJHtzdGF0aWNQYXRofS8ke2ZzU2FmZU5hbWV9YCxcbiAgICAgIH0pXG5cbiAgICAgIGZpbGVGb3JSZXNpemUgPSB7XG4gICAgICAgIC4uLmZpbGUsXG4gICAgICAgIGRhdGE6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgc2l6ZTogaW5mby5zaXplLFxuICAgICAgfVxuICAgICAgZmlsZURhdGEud2lkdGggPSBpbmZvLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBpbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBpbmZvLnNpemVcblxuICAgICAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlLnRlbXBGaWxlUGF0aCwgY3JvcHBlZEltYWdlKSAvLyB3cml0ZSBmaWxlQnVmZmVyIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5maWxlcy5maWxlID0gZmlsZUZvclJlc2l6ZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKHtcbiAgICAgICAgYnVmZmVyOiBmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YSxcbiAgICAgICAgcGF0aDogYCR7c3RhdGljUGF0aH0vJHtmc1NhZmVOYW1lfWAsXG4gICAgICB9KVxuXG4gICAgICAvLyBJZiB1c2luZyB0ZW1wIGZpbGVzIGFuZCB0aGUgaW1hZ2UgaXMgYmVpbmcgcmVzaXplZCwgd3JpdGUgdGhlIGZpbGUgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgaWYgKGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgICAgICAgYXdhaXQgZnMucHJvbWlzZXMud3JpdGVGaWxlKGZpbGUudGVtcEZpbGVQYXRoLCBmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YSkgLy8gd3JpdGUgZmlsZUJ1ZmZlciB0byB0aGUgdGVtcCBwYXRoXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQXNzaWduIHRoZSBfcG9zc2libHkgbW9kaWZpZWRfIGZpbGUgdG8gdGhlIHJlcXVlc3Qgb2JqZWN0XG4gICAgICAgICAgcmVxLmZpbGVzLmZpbGUgPSB7XG4gICAgICAgICAgICAuLi5maWxlLFxuICAgICAgICAgICAgZGF0YTogZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEsXG4gICAgICAgICAgICBzaXplOiBmaWxlQnVmZmVyPy5pbmZvLnNpemUsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVTdXBwb3J0c1Jlc2l6ZSAmJiAoQXJyYXkuaXNBcnJheShpbWFnZVNpemVzKSB8fCBmb2NhbFBvaW50RW5hYmxlZCAhPT0gZmFsc2UpKSB7XG4gICAgICByZXEucGF5bG9hZFVwbG9hZFNpemVzID0ge31cbiAgICAgIGNvbnN0IHsgZm9jYWxQb2ludCwgc2l6ZURhdGEsIHNpemVzVG9TYXZlIH0gPSBhd2FpdCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzKHtcbiAgICAgICAgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICBkaW1lbnNpb25zOiAhY3JvcERhdGFcbiAgICAgICAgICA/IGRpbWVuc2lvbnNcbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgLi4uZGltZW5zaW9ucyxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBmaWxlRGF0YS5oZWlnaHQsXG4gICAgICAgICAgICAgIHdpZHRoOiBmaWxlRGF0YS53aWR0aCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIGZpbGU6IGZpbGVGb3JSZXNpemUsXG4gICAgICAgIG1pbWVUeXBlOiBmaWxlRGF0YS5taW1lVHlwZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzYXZlZEZpbGVuYW1lOiBmc1NhZmVOYW1lIHx8IGZpbGUubmFtZSxcbiAgICAgICAgc3RhdGljUGF0aCxcbiAgICAgICAgdXBsb2FkRWRpdHMsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRGF0YS5zaXplcyA9IHNpemVEYXRhXG4gICAgICBmaWxlRGF0YS5mb2NhbFggPSBmb2NhbFBvaW50Py54XG4gICAgICBmaWxlRGF0YS5mb2NhbFkgPSBmb2NhbFBvaW50Py55XG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKC4uLnNpemVzVG9TYXZlKVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmVxLnBheWxvYWQubG9nZ2VyLmVycm9yKHsgZXJyLCBtc2c6ICdFcnJvciB1cGxvYWRpbmcgZmlsZScgfSlcbiAgICB0aHJvdyBuZXcgRmlsZVVwbG9hZEVycm9yKHJlcS50KVxuICB9XG5cbiAgbmV3RGF0YSA9IHtcbiAgICAuLi5uZXdEYXRhLFxuICAgIC4uLmZpbGVEYXRhLFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhOiBuZXdEYXRhLFxuICAgIGZpbGVzOiBmaWxlc1RvU2F2ZSxcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIHVwbG9hZCBlZGl0cyBmcm9tIHJlcSBvciBpbmNvbWluZyBkYXRhXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVXBsb2FkRWRpdHNGcm9tUmVxT3JJbmNvbWluZ0RhdGEoYXJnczoge1xuICBkYXRhOiB1bmtub3duXG4gIG9wZXJhdGlvbjogJ2NyZWF0ZScgfCAndXBkYXRlJ1xuICBvcmlnaW5hbERvYzogdW5rbm93blxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG59KTogVXBsb2FkRWRpdHMge1xuICBjb25zdCB7IGRhdGEsIG9wZXJhdGlvbiwgb3JpZ2luYWxEb2MsIHJlcSB9ID0gYXJnc1xuXG4gIC8vIEdldCBpbnRlbmRlZCBmb2NhbCBwb2ludCBjaGFuZ2UgZnJvbSBxdWVyeSBzdHJpbmcgb3IgaW5jb21pbmcgZGF0YVxuICBjb25zdCB7XG4gICAgdXBsb2FkRWRpdHMgPSB7fSxcbiAgfToge1xuICAgIHVwbG9hZEVkaXRzPzogVXBsb2FkRWRpdHNcbiAgfSA9IHJlcS5xdWVyeSB8fCB7fVxuXG4gIGlmICh1cGxvYWRFZGl0cy5mb2NhbFBvaW50KSByZXR1cm4gdXBsb2FkRWRpdHNcblxuICBjb25zdCBpbmNvbWluZ0RhdGEgPSBkYXRhIGFzIEZpbGVEYXRhXG4gIGNvbnN0IG9yaWdEb2MgPSBvcmlnaW5hbERvYyBhcyBGaWxlRGF0YVxuXG4gIC8vIElmIG5vIGNoYW5nZSBpbiBmb2NhbCBwb2ludCwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgLy8gVGhpcyBwcmV2ZW50cyBhIHJlZm9jYWwgb3BlcmF0aW9uIHRyaWdnZXJlZCBmcm9tIGFkbWluLCBiZWNhdXNlIGl0IGFsd2F5cyBzZW5kcyB0aGUgZm9jYWwgcG9pbnQuXG4gIGlmIChvcmlnRG9jICYmIGluY29taW5nRGF0YS5mb2NhbFggPT09IG9yaWdEb2MuZm9jYWxYICYmIGluY29taW5nRGF0YS5mb2NhbFkgPT09IG9yaWdEb2MuZm9jYWxZKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgaWYgKGluY29taW5nRGF0YS5mb2NhbFggJiYgaW5jb21pbmdEYXRhLmZvY2FsWSkge1xuICAgIHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQgPSB7XG4gICAgICB4OiBpbmNvbWluZ0RhdGEuZm9jYWxYLFxuICAgICAgeTogaW5jb21pbmdEYXRhLmZvY2FsWSxcbiAgICB9XG4gICAgcmV0dXJuIHVwbG9hZEVkaXRzXG4gIH1cblxuICAvLyBJZiBubyBmb2NhbCBwb2ludCBpcyBzZXQsIGRlZmF1bHQgdG8gY2VudGVyXG4gIGlmIChvcGVyYXRpb24gPT09ICdjcmVhdGUnKSB7XG4gICAgdXBsb2FkRWRpdHMuZm9jYWxQb2ludCA9IHtcbiAgICAgIHg6IDUwLFxuICAgICAgeTogNTAsXG4gICAgfVxuICB9XG4gIHJldHVybiB1cGxvYWRFZGl0c1xufVxuIl0sIm5hbWVzIjpbImdlbmVyYXRlRmlsZURhdGEiLCJjb2xsZWN0aW9uIiwiY29uZmlnIiwiY29sbGVjdGlvbkNvbmZpZyIsImRhdGEiLCJvcGVyYXRpb24iLCJvcmlnaW5hbERvYyIsIm92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMiLCJyZXEiLCJ0aHJvd09uTWlzc2luZ0ZpbGUiLCJ1cGxvYWQiLCJmaWxlcyIsImZpbGUiLCJ1bmRlZmluZWQiLCJ1cGxvYWRFZGl0cyIsInBhcnNlVXBsb2FkRWRpdHNGcm9tUmVxT3JJbmNvbWluZ0RhdGEiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwiZm9jYWxQb2ludCIsImZvY2FsUG9pbnRFbmFibGVkIiwiZm9ybWF0T3B0aW9ucyIsImltYWdlU2l6ZXMiLCJyZXNpemVPcHRpb25zIiwic3RhdGljRGlyIiwidHJpbU9wdGlvbnMiLCJzdGF0aWNQYXRoIiwiaW5kZXhPZiIsInBhdGgiLCJyZXNvbHZlIiwicGF0aHMiLCJjb25maWdEaXIiLCJmaWxlbmFtZSIsInVybCIsInN0YXJ0c1dpdGgiLCJmaWxlUGF0aCIsInJlc3BvbnNlIiwiZ2V0RmlsZUJ5UGF0aCIsImdldEV4dGVybmFsRmlsZSIsInVwbG9hZENvbmZpZyIsImVyciIsIkVycm9yIiwiRmlsZVJldHJpZXZhbEVycm9yIiwidCIsIm1lc3NhZ2UiLCJNaXNzaW5nRmlsZSIsIm1rZGlycCIsInN5bmMiLCJuZXdEYXRhIiwiZmlsZXNUb1NhdmUiLCJmaWxlRGF0YSIsImZpbGVJc0FuaW1hdGVkIiwibWltZXR5cGUiLCJjcm9wRGF0YSIsImNyb3AiLCJmaWxlU3VwcG9ydHNSZXNpemUiLCJjYW5SZXNpemVJbWFnZSIsImZzU2FmZU5hbWUiLCJzaGFycEZpbGUiLCJkaW1lbnNpb25zIiwiZmlsZUJ1ZmZlciIsImV4dCIsIm1pbWUiLCJmaWxlSGFzQWRqdXN0bWVudHMiLCJCb29sZWFuIiwidGVtcEZpbGVQYXRoIiwic2hhcnBPcHRpb25zIiwiYW5pbWF0ZWQiLCJzaGFycCIsInJvdGF0ZSIsInJlc2l6ZSIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW0iLCJpc0ltYWdlIiwiZ2V0SW1hZ2VTaXplIiwid2lkdGgiLCJoZWlnaHQiLCJtZXRhZGF0YSIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJmcm9tQnVmZmVyIiwiaW5mbyIsImZpbGVzaXplIiwic2l6ZSIsInBhZ2VzIiwibGVuZ3RoIiwibmFtZSIsImluY2x1ZGVzIiwic3BsaXQiLCJwb3AiLCJtaW1lVHlwZSIsImJhc2VGaWxlbmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJnZXRTYWZlRmlsZU5hbWUiLCJjb2xsZWN0aW9uU2x1ZyIsInNsdWciLCJkZXNpcmVkRmlsZW5hbWUiLCJmaWxlRm9yUmVzaXplIiwiY3JvcHBlZEltYWdlIiwiY3JvcEltYWdlIiwicHVzaCIsImJ1ZmZlciIsImZzIiwicHJvbWlzZXMiLCJ3cml0ZUZpbGUiLCJBcnJheSIsImlzQXJyYXkiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJzaXplRGF0YSIsInNpemVzVG9TYXZlIiwicmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyIsInNhdmVkRmlsZW5hbWUiLCJzaXplcyIsImZvY2FsWCIsIngiLCJmb2NhbFkiLCJ5IiwicGF5bG9hZCIsImxvZ2dlciIsImVycm9yIiwibXNnIiwiRmlsZVVwbG9hZEVycm9yIiwiYXJncyIsInF1ZXJ5IiwiaW5jb21pbmdEYXRhIiwib3JpZ0Rv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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBaseFields.d.ts","sourceRoot":"","sources":["../../src/uploads/getBaseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAcnD,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,gBAAgB,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,QAAA,MAAM,mBAAmB,2BAA4B,OAAO,KAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"getBaseFields.d.ts","sourceRoot":"","sources":["../../src/uploads/getBaseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAcnD,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,gBAAgB,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,QAAA,MAAM,mBAAmB,2BAA4B,OAAO,KAAG,KAAK,EAsKnE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -103,7 +103,7 @@ const getBaseUploadFields = ({ collection, config })=>{
|
|
|
103
103
|
mimeType.validate = (0, _mimeTypeValidator.mimeTypeValidator)(uploadOptions.mimeTypes);
|
|
104
104
|
}
|
|
105
105
|
// Add focal point fields if not disabled
|
|
106
|
-
if (uploadOptions.focalPoint !== false
|
|
106
|
+
if (uploadOptions.focalPoint !== false || uploadOptions.imageSizes || uploadOptions.resizeOptions) {
|
|
107
107
|
uploadFields = uploadFields.concat([
|
|
108
108
|
'focalX',
|
|
109
109
|
'focalY'
|
|
@@ -168,4 +168,4 @@ const getBaseUploadFields = ({ collection, config })=>{
|
|
|
168
168
|
};
|
|
169
169
|
const _default = getBaseUploadFields;
|
|
170
170
|
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEJhc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgSW5jb21pbmdVcGxvYWRUeXBlIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgZXh0cmFjdFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL3RyYW5zbGF0aW9ucy9leHRyYWN0VHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgbWltZVR5cGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbWVUeXBlVmFsaWRhdG9yJ1xuXG5jb25zdCBsYWJlbHMgPSBleHRyYWN0VHJhbnNsYXRpb25zKFtcbiAgJ3VwbG9hZDp3aWR0aCcsXG4gICd1cGxvYWQ6aGVpZ2h0JyxcbiAgJ3VwbG9hZDpmaWxlU2l6ZScsXG4gICd1cGxvYWQ6ZmlsZU5hbWUnLFxuICAndXBsb2FkOnNpemVzJyxcbl0pXG5cbnR5cGUgT3B0aW9ucyA9IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBjb25maWc6IENvbmZpZ1xufVxuXG5jb25zdCBnZXRCYXNlVXBsb2FkRmllbGRzID0gKHsgY29sbGVjdGlvbiwgY29uZmlnIH06IE9wdGlvbnMpOiBGaWVsZFtdID0+IHtcbiAgY29uc3QgdXBsb2FkT3B0aW9uczogSW5jb21pbmdVcGxvYWRUeXBlID1cbiAgICB0eXBlb2YgY29sbGVjdGlvbi51cGxvYWQgPT09ICdvYmplY3QnID8gY29sbGVjdGlvbi51cGxvYWQgOiB7fVxuXG4gIGNvbnN0IG1pbWVUeXBlOiBGaWVsZCA9IHtcbiAgICBuYW1lOiAnbWltZVR5cGUnLFxuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogJ01JTUUgVHlwZScsXG4gIH1cblxuICBjb25zdCB1cmw6IEZpZWxkID0ge1xuICAgIG5hbWU6ICd1cmwnLFxuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogJ1VSTCcsXG4gIH1cblxuICBjb25zdCB3aWR0aDogRmllbGQgPSB7XG4gICAgbmFtZTogJ3dpZHRoJyxcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogbGFiZWxzWyd1cGxvYWQ6d2lkdGgnXSxcbiAgfVxuXG4gIGNvbnN0IGhlaWdodDogRmllbGQgPSB7XG4gICAgbmFtZTogJ2hlaWdodCcsXG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmhlaWdodCddLFxuICB9XG5cbiAgY29uc3QgZmlsZXNpemU6IEZpZWxkID0ge1xuICAgIG5hbWU6ICdmaWxlc2l6ZScsXG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmZpbGVTaXplJ10sXG4gIH1cblxuICBjb25zdCBmaWxlbmFtZTogRmllbGQgPSB7XG4gICAgbmFtZTogJ2ZpbGVuYW1lJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgYWRtaW46IHtcbiAgICAgIGRpc2FibGVCdWxrRWRpdDogdHJ1ZSxcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgaW5kZXg6IHRydWUsXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmZpbGVOYW1lJ10sXG4gICAgdW5pcXVlOiB0cnVlLFxuICB9XG5cbiAgbGV0IHVwbG9hZEZpZWxkczogRmllbGRbXSA9IFtcbiAgICB7XG4gICAgICAuLi51cmwsXG4gICAgICBob29rczoge1xuICAgICAgICBhZnRlclJlYWQ6IFtcbiAgICAgICAgICAoeyBkYXRhIH0pID0+
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dldEJhc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgSW5jb21pbmdVcGxvYWRUeXBlIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgZXh0cmFjdFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL3RyYW5zbGF0aW9ucy9leHRyYWN0VHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgbWltZVR5cGVWYWxpZGF0b3IgfSBmcm9tICcuL21pbWVUeXBlVmFsaWRhdG9yJ1xuXG5jb25zdCBsYWJlbHMgPSBleHRyYWN0VHJhbnNsYXRpb25zKFtcbiAgJ3VwbG9hZDp3aWR0aCcsXG4gICd1cGxvYWQ6aGVpZ2h0JyxcbiAgJ3VwbG9hZDpmaWxlU2l6ZScsXG4gICd1cGxvYWQ6ZmlsZU5hbWUnLFxuICAndXBsb2FkOnNpemVzJyxcbl0pXG5cbnR5cGUgT3B0aW9ucyA9IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBjb25maWc6IENvbmZpZ1xufVxuXG5jb25zdCBnZXRCYXNlVXBsb2FkRmllbGRzID0gKHsgY29sbGVjdGlvbiwgY29uZmlnIH06IE9wdGlvbnMpOiBGaWVsZFtdID0+IHtcbiAgY29uc3QgdXBsb2FkT3B0aW9uczogSW5jb21pbmdVcGxvYWRUeXBlID1cbiAgICB0eXBlb2YgY29sbGVjdGlvbi51cGxvYWQgPT09ICdvYmplY3QnID8gY29sbGVjdGlvbi51cGxvYWQgOiB7fVxuXG4gIGNvbnN0IG1pbWVUeXBlOiBGaWVsZCA9IHtcbiAgICBuYW1lOiAnbWltZVR5cGUnLFxuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogJ01JTUUgVHlwZScsXG4gIH1cblxuICBjb25zdCB1cmw6IEZpZWxkID0ge1xuICAgIG5hbWU6ICd1cmwnLFxuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogJ1VSTCcsXG4gIH1cblxuICBjb25zdCB3aWR0aDogRmllbGQgPSB7XG4gICAgbmFtZTogJ3dpZHRoJyxcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgfSxcbiAgICBsYWJlbDogbGFiZWxzWyd1cGxvYWQ6d2lkdGgnXSxcbiAgfVxuXG4gIGNvbnN0IGhlaWdodDogRmllbGQgPSB7XG4gICAgbmFtZTogJ2hlaWdodCcsXG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmhlaWdodCddLFxuICB9XG5cbiAgY29uc3QgZmlsZXNpemU6IEZpZWxkID0ge1xuICAgIG5hbWU6ICdmaWxlc2l6ZScsXG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmZpbGVTaXplJ10sXG4gIH1cblxuICBjb25zdCBmaWxlbmFtZTogRmllbGQgPSB7XG4gICAgbmFtZTogJ2ZpbGVuYW1lJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgYWRtaW46IHtcbiAgICAgIGRpc2FibGVCdWxrRWRpdDogdHJ1ZSxcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgIH0sXG4gICAgaW5kZXg6IHRydWUsXG4gICAgbGFiZWw6IGxhYmVsc1sndXBsb2FkOmZpbGVOYW1lJ10sXG4gICAgdW5pcXVlOiB0cnVlLFxuICB9XG5cbiAgbGV0IHVwbG9hZEZpZWxkczogRmllbGRbXSA9IFtcbiAgICB7XG4gICAgICAuLi51cmwsXG4gICAgICBob29rczoge1xuICAgICAgICBhZnRlclJlYWQ6IFtcbiAgICAgICAgICAoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhPy5maWxlbmFtZSkge1xuICAgICAgICAgICAgICBpZiAodXBsb2FkT3B0aW9ucy5zdGF0aWNVUkwuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbmZpZy5zZXJ2ZXJVUkx9JHt1cGxvYWRPcHRpb25zLnN0YXRpY1VSTH0vJHtkYXRhLmZpbGVuYW1lfWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gYCR7dXBsb2FkT3B0aW9ucy5zdGF0aWNVUkx9LyR7ZGF0YS5maWxlbmFtZX1gXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZpbGVuYW1lLFxuICAgIG1pbWVUeXBlLFxuICAgIGZpbGVzaXplLFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgXVxuXG4gIGlmICh1cGxvYWRPcHRpb25zLm1pbWVUeXBlcykge1xuICAgIG1pbWVUeXBlLnZhbGlkYXRlID0gbWltZVR5cGVWYWxpZGF0b3IodXBsb2FkT3B0aW9ucy5taW1lVHlwZXMpXG4gIH1cblxuICAvLyBBZGQgZm9jYWwgcG9pbnQgZmllbGRzIGlmIG5vdCBkaXNhYmxlZFxuICBpZiAoXG4gICAgdXBsb2FkT3B0aW9ucy5mb2NhbFBvaW50ICE9PSBmYWxzZSB8fFxuICAgIHVwbG9hZE9wdGlvbnMuaW1hZ2VTaXplcyB8fFxuICAgIHVwbG9hZE9wdGlvbnMucmVzaXplT3B0aW9uc1xuICApIHtcbiAgICB1cGxvYWRGaWVsZHMgPSB1cGxvYWRGaWVsZHMuY29uY2F0KFxuICAgICAgWydmb2NhbFgnLCAnZm9jYWxZJ10ubWFwKChuYW1lKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmICh1cGxvYWRPcHRpb25zLmltYWdlU2l6ZXMpIHtcbiAgICB1cGxvYWRGaWVsZHMgPSB1cGxvYWRGaWVsZHMuY29uY2F0KFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3NpemVzJyxcbiAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGZpZWxkczogdXBsb2FkT3B0aW9ucy5pbWFnZVNpemVzLm1hcCgoc2l6ZSkgPT4gKHtcbiAgICAgICAgICBuYW1lOiBzaXplLm5hbWUsXG4gICAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC4uLnVybCxcbiAgICAgICAgICAgICAgaG9va3M6IHtcbiAgICAgICAgICAgICAgICBhZnRlclJlYWQ6IFtcbiAgICAgICAgICAgICAgICAgICh7IGRhdGEgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplRmlsZW5hbWUgPSBkYXRhPy5zaXplcz8uW3NpemUubmFtZV0/LmZpbGVuYW1lXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpemVGaWxlbmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgIGlmICh1cGxvYWRPcHRpb25zLnN0YXRpY1VSTC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtjb25maWcuc2VydmVyVVJMfSR7dXBsb2FkT3B0aW9ucy5zdGF0aWNVUkx9LyR7c2l6ZUZpbGVuYW1lfWBcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke3VwbG9hZE9wdGlvbnMuc3RhdGljVVJMfS8ke3NpemVGaWxlbmFtZX1gXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgbWltZVR5cGUsXG4gICAgICAgICAgICBmaWxlc2l6ZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uZmlsZW5hbWUsXG4gICAgICAgICAgICAgIHVuaXF1ZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbGFiZWw6IHNpemUubmFtZSxcbiAgICAgICAgfSkpLFxuICAgICAgICBsYWJlbDogbGFiZWxzWyd1cGxvYWQ6c2l6ZXMnXSxcbiAgICAgIH0sXG4gICAgXSlcbiAgfVxuXG4gIHJldHVybiB1cGxvYWRGaWVsZHNcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0QmFzZVVwbG9hZEZpZWxkc1xuIl0sIm5hbWVzIjpbImxhYmVscyIsImV4dHJhY3RUcmFuc2xhdGlvbnMiLCJnZXRCYXNlVXBsb2FkRmllbGRzIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsInVwbG9hZE9wdGlvbnMiLCJ1cGxvYWQiLCJtaW1lVHlwZSIsIm5hbWUiLCJ0eXBlIiwiYWRtaW4iLCJoaWRkZW4iLCJyZWFkT25seSIsImxhYmVsIiwidXJsIiwid2lkdGgiLCJoZWlnaHQiLCJmaWxlc2l6ZSIsImZpbGVuYW1lIiwiZGlzYWJsZUJ1bGtFZGl0IiwiaW5kZXgiLCJ1bmlxdWUiLCJ1cGxvYWRGaWVsZHMiLCJob29rcyIsImFmdGVyUmVhZCIsImRhdGEiLCJzdGF0aWNVUkwiLCJzdGFydHNXaXRoIiwic2VydmVyVVJMIiwidW5kZWZpbmVkIiwibWltZVR5cGVzIiwidmFsaWRhdGUiLCJtaW1lVHlwZVZhbGlkYXRvciIsImZvY2FsUG9pbnQiLCJpbWFnZVNpemVzIiwicmVzaXplT3B0aW9ucyIsImNvbmNhdCIsIm1hcCIsImZpZWxkcyIsInNpemUiLCJzaXplRmlsZW5hbWUiLCJzaXplcyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkE2TEE7OztlQUFBOzs7cUNBeExvQzttQ0FDRjtBQUVsQyxNQUFNQSxTQUFTQyxJQUFBQSx3Q0FBbUIsRUFBQztJQUNqQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFPRCxNQUFNQyxzQkFBc0IsQ0FBQyxFQUFFQyxVQUFVLEVBQUVDLE1BQU0sRUFBVztJQUMxRCxNQUFNQyxnQkFDSixPQUFPRixXQUFXRyxNQUFNLEtBQUssV0FBV0gsV0FBV0csTUFBTSxHQUFHLENBQUM7SUFFL0QsTUFBTUMsV0FBa0I7UUFDdEJDLE1BQU07UUFDTkMsTUFBTTtRQUNOQyxPQUFPO1lBQ0xDLFFBQVE7WUFDUkMsVUFBVTtRQUNaO1FBQ0FDLE9BQU87SUFDVDtJQUVBLE1BQU1DLE1BQWE7UUFDakJOLE1BQU07UUFDTkMsTUFBTTtRQUNOQyxPQUFPO1lBQ0xDLFFBQVE7WUFDUkMsVUFBVTtRQUNaO1FBQ0FDLE9BQU87SUFDVDtJQUVBLE1BQU1FLFFBQWU7UUFDbkJQLE1BQU07UUFDTkMsTUFBTTtRQUNOQyxPQUFPO1lBQ0xDLFFBQVE7WUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EAEV,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAKhB,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AA6KD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,UAAU,EACV,WAAW,GACZ,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EAEV,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAKhB,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AA6KD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,UAAU,EACV,WAAW,GACZ,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmIxC"}
|
|
@@ -161,18 +161,22 @@ function _interop_require_default(obj) {
|
|
|
161
161
|
};
|
|
162
162
|
async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, staticPath, uploadEdits }) {
|
|
163
163
|
const { focalPoint: focalPointEnabled = true, imageSizes } = config.upload;
|
|
164
|
-
// Noting to resize here so return as early as possible
|
|
165
|
-
if (!imageSizes) return {
|
|
166
|
-
sizeData: {},
|
|
167
|
-
sizesToSave: []
|
|
168
|
-
};
|
|
169
|
-
const sharpBase = (0, _sharp.default)(file.tempFilePath || file.data).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
|
|
170
|
-
;
|
|
171
164
|
// Focal point adjustments
|
|
172
165
|
const incomingFocalPoint = uploadEdits.focalPoint ? {
|
|
173
166
|
x: (0, _isNumber.isNumber)(uploadEdits.focalPoint.x) ? Math.round(uploadEdits.focalPoint.x) : 50,
|
|
174
167
|
y: (0, _isNumber.isNumber)(uploadEdits.focalPoint.y) ? Math.round(uploadEdits.focalPoint.y) : 50
|
|
175
168
|
} : undefined;
|
|
169
|
+
const defaultResult = {
|
|
170
|
+
...focalPointEnabled && incomingFocalPoint && {
|
|
171
|
+
focalPoint: incomingFocalPoint
|
|
172
|
+
},
|
|
173
|
+
sizeData: {},
|
|
174
|
+
sizesToSave: []
|
|
175
|
+
};
|
|
176
|
+
// Nothing to resize here so return as early as possible
|
|
177
|
+
if (!imageSizes) return defaultResult;
|
|
178
|
+
const sharpBase = (0, _sharp.default)(file.tempFilePath || file.data).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
|
|
179
|
+
;
|
|
176
180
|
const results = await Promise.all(imageSizes.map(async (imageResizeConfig)=>{
|
|
177
181
|
imageResizeConfig = sanitizeResizeConfig(imageResizeConfig);
|
|
178
182
|
// This checks if a resize should happen. If not, the resized image will be
|
|
@@ -259,13 +263,7 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
|
|
|
259
263
|
Object.assign(acc.sizeData, result.sizeData);
|
|
260
264
|
acc.sizesToSave.push(...result.sizesToSave);
|
|
261
265
|
return acc;
|
|
262
|
-
},
|
|
263
|
-
...focalPointEnabled && incomingFocalPoint && {
|
|
264
|
-
focalPoint: incomingFocalPoint
|
|
265
|
-
},
|
|
266
|
-
sizeData: {},
|
|
267
|
-
sizesToSave: []
|
|
268
|
-
});
|
|
266
|
+
}, defaultResult);
|
|
269
267
|
}
|
|
270
268
|
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcbmltcG9ydCB0eXBlIHsgT3V0cHV0SW5mbyB9IGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgeyBmcm9tQnVmZmVyIH0gZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuaW1wb3J0IHNoYXJwIGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgRmlsZVNpemUsXG4gIEZpbGVTaXplcyxcbiAgRmlsZVRvU2F2ZSxcbiAgSW1hZ2VTaXplLFxuICBQcm9iZWRJbWFnZVNpemUsXG4gIFVwbG9hZEVkaXRzLFxufSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4uL3V0aWxpdGllcy9pc051bWJlcidcbmltcG9ydCBmaWxlRXhpc3RzIGZyb20gJy4vZmlsZUV4aXN0cydcblxudHlwZSBSZXNpemVBcmdzID0ge1xuICBjb25maWc6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgZGltZW5zaW9uczogUHJvYmVkSW1hZ2VTaXplXG4gIGZpbGU6IFVwbG9hZGVkRmlsZVxuICBtaW1lVHlwZTogc3RyaW5nXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2F2ZWRGaWxlbmFtZTogc3RyaW5nXG4gIHN0YXRpY1BhdGg6IHN0cmluZ1xuICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG59XG5cbi8qKiBSZXN1bHQgZnJvbSByZXNpemluZyBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZXMgKi9cbnR5cGUgSW1hZ2VTaXplc1Jlc3VsdCA9IHtcbiAgZm9jYWxQb2ludD86IFVwbG9hZEVkaXRzWydmb2NhbFBvaW50J11cbiAgc2l6ZURhdGE6IEZpbGVTaXplc1xuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdXG59XG5cbnR5cGUgU2FuaXRpemVkSW1hZ2VEYXRhID0ge1xuICBleHQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgaW1hZ2UgbmFtZSBhbmQgZXh0cmFjdCB0aGUgZXh0ZW5zaW9uIGZyb20gdGhlIHNvdXJjZSBpbWFnZVxuICpcbiAqIEBwYXJhbSBzb3VyY2VJbWFnZSAtIHRoZSBzb3VyY2UgaW1hZ2VcbiAqIEByZXR1cm5zIHRoZSBzYW5pdGl6ZWQgbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKi9cbmNvbnN0IGdldFNhbml0aXplZEltYWdlRGF0YSA9IChzb3VyY2VJbWFnZTogc3RyaW5nKTogU2FuaXRpemVkSW1hZ2VEYXRhID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gc291cmNlSW1hZ2Uuc3BsaXQoJy4nKS5wb3AoKVxuICBjb25zdCBuYW1lID0gc2FuaXRpemUoc291cmNlSW1hZ2Uuc3Vic3RyaW5nKDAsIHNvdXJjZUltYWdlLmxhc3RJbmRleE9mKCcuJykpIHx8IHNvdXJjZUltYWdlKVxuICByZXR1cm4geyBuYW1lLCBleHQ6IGV4dGVuc2lvbiB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGltYWdlIG5hbWUgYmFzZWQgb24gdGhlIG91dHB1dCBpbWFnZSBuYW1lLCB0aGUgZGltZW5zaW9ucyBhbmRcbiAqIHRoZSBleHRlbnNpb24uXG4gKlxuICogSWdub3JlIHRoZSBmYWN0IHRoYXQgZHVwbGljYXRlIG5hbWVzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGhlcmUgaXMgb25lXG4gKiBzaXplIHdpdGggYHdpZHRoIEFORCBoZWlnaHRgIGFuZCBvbmUgd2l0aCBvbmx5IGBoZWlnaHQgT1Igd2lkdGhgLiBCZWNhdXNlXG4gKiBzcGFjZSBpcyBleHBlbnNpdmUsIHdlIHdpbGwgcmV1c2UgdGhlIHNhbWUgaW1hZ2UgZm9yIGJvdGggc2l6ZXMuXG4gKlxuICogQHBhcmFtIG91dHB1dEltYWdlTmFtZSAtIHRoZSBzYW5pdGl6ZWQgaW1hZ2UgbmFtZVxuICogQHBhcmFtIGJ1ZmZlckluZm8gLSB0aGUgYnVmZmVyIGluZm9cbiAqIEBwYXJhbSBleHRlbnNpb24gLSB0aGUgZXh0ZW5zaW9uIHRvIHVzZVxuICogQHJldHVybnMgdGhlIG5ldyBpbWFnZSBuYW1lIHRoYXQgaXMgbm90IHRha2VuXG4gKi9cbmNvbnN0IGNyZWF0ZUltYWdlTmFtZSA9IChcbiAgb3V0cHV0SW1hZ2VOYW1lOiBzdHJpbmcsXG4gIHsgaGVpZ2h0LCB3aWR0aCB9OiBPdXRwdXRJbmZvLFxuICBleHRlbnNpb246IHN0cmluZyxcbikgPT4gYCR7b3V0cHV0SW1hZ2VOYW1lfS0ke3dpZHRofXgke2hlaWdodH0uJHtleHRlbnNpb259YFxuXG50eXBlIENyZWF0ZVJlc3VsdEFyZ3MgPSB7XG4gIGZpbGVuYW1lPzogRmlsZVNpemVbJ2ZpbGVuYW1lJ11cbiAgZmlsZXNpemU/OiBGaWxlU2l6ZVsnZmlsZXNpemUnXVxuICBoZWlnaHQ/OiBGaWxlU2l6ZVsnaGVpZ2h0J11cbiAgbWltZVR5cGU/OiBGaWxlU2l6ZVsnbWltZVR5cGUnXVxuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZXNUb1NhdmU/OiBGaWxlVG9TYXZlW11cbiAgd2lkdGg/OiBGaWxlU2l6ZVsnd2lkdGgnXVxufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVzdWx0IG9iamVjdCBmb3IgdGhlIGltYWdlIHJlc2l6ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXJhbWV0ZXJzLiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWQsIGFuIGVtcHR5IHJlc3VsdCBvYmplY3RcbiAqIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gd2lkdGggLSB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gdGhlIGhlaWdodCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlc2l6ZSAtIHRoZSBmaWxlc2l6ZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBtaW1lVHlwZSAtIHRoZSBtaW1lIHR5cGUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gc2l6ZXNUb1NhdmUgLSB0aGUgc2l6ZXMgdG8gc2F2ZVxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvYmplY3RcbiAqL1xuY29uc3QgY3JlYXRlUmVzdWx0ID0gKHtcbiAgbmFtZSxcbiAgZmlsZW5hbWUgPSBudWxsLFxuICBmaWxlc2l6ZSA9IG51bGwsXG4gIGhlaWdodCA9IG51bGwsXG4gIG1pbWVUeXBlID0gbnVsbCxcbiAgc2l6ZXNUb1NhdmUgPSBbXSxcbiAgd2lkdGggPSBudWxsLFxufTogQ3JlYXRlUmVzdWx0QXJncyk6IEltYWdlU2l6ZXNSZXN1bHQgPT4ge1xuICByZXR1cm4ge1xuICAgIHNpemVEYXRhOiB7XG4gICAgICBbbmFtZV06IHtcbiAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgIGZpbGVzaXplLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIG1pbWVUeXBlLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzaXplc1RvU2F2ZSxcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnNcbiAqIGFuZCB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gSWYgdGhlIHJlc2l6ZSBvcHRpb25zIHdpdGhvdXRFbmxhcmdlbWVudCBvciB3aXRob3V0UmVkdWN0aW9uIGFyZSBwcm92aWRlZCxcbiAqIHRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMsIGdpdmVuIHRoYXQgdGhlXG4gKiB3aWR0aCBvciBoZWlnaHQgdG8gYmUgcmVzaXplZCBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgcmVzaXppbmcgaXMgbm90IG5lZWRlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmNvbnN0IHByZXZlbnRSZXNpemUgPSAoXG4gIHsgaGVpZ2h0OiBkZXNpcmVkSGVpZ2h0LCB3aWR0aDogZGVzaXJlZFdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKTogYm9vbGVhbiA9PiB7XG4gIC8vIGRlZmF1bHQgaXMgdG8gYWxsb3cgcmVkdWN0aW9uXG4gIGlmICh3aXRob3V0UmVkdWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICAvLyBkZWZhdWx0IGlzIHRvIHByZXZlbnQgZW5sYXJnZW1lbnRcbiAgaWYgKHdpdGhvdXRFbmxhcmdlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCA9ICFkZXNpcmVkSGVpZ2h0IHx8ICFkZXNpcmVkV2lkdGhcbiAgaWYgKGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQpIHtcbiAgICAvLyBJZiB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBub3QgZGVmaW5lZCwgaXQgbWVhbnMgdGhlcmUgaXMgYSBmb3JtYXQgY29udmVyc2lvblxuICAgIC8vIGFuZCB0aGUgaW1hZ2UgbmVlZHMgdG8gYmUgXCJyZXNpemVkXCIgKHRyYW5zZm9ybWVkKS5cbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRXaWR0aCA9IGRlc2lyZWRXaWR0aCA+IG9yaWdpbmFsLndpZHRoXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudEhlaWdodCA9IGRlc2lyZWRIZWlnaHQgPiBvcmlnaW5hbC5oZWlnaHRcbiAgaWYgKGhhc0luc3VmZmljaWVudFdpZHRoICYmIGhhc0luc3VmZmljaWVudEhlaWdodCkge1xuICAgIC8vIGRvZXNuJ3QgbmVlZCByZXNpemUgLSBwcmV2ZW50IGVubGFyZ2VtZW50LiBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBib3RoIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGluc3VmZmljaWVudC5cbiAgICAvLyBpZiBvbmx5IG9uZSBkaW1lbnNpb24gaXMgaW5zdWZmaWNpZW50IGFuZCB0aGUgb3RoZXIgaXMgc3VmZmljaWVudCwgcmVzaXppbmcgbmVlZHMgdG8gaGFwcGVuLCBhcyB0aGUgaW1hZ2VcbiAgICAvLyBzaG91bGQgYmUgcmVzaXplZCB0byB0aGUgc3VmZmljaWVudCBkaW1lbnNpb24uXG4gICAgcmV0dXJuIHRydWUgLy8gZG8gbm90IGNyZWF0ZSBhIG5ldyBzaXplXG4gIH1cblxuICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGltYWdlIHNob3VsZCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gc2hhcnAgd2l0aG91dCBwYXlsb2FkIGFkanVzdGluZyBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMgYW5kIHJlc2l6ZSBvcHRpb25zXG4gKiBAcGFyYW0gb3JpZ2luYWwgLSB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgaW1hZ2Ugc2hvdWxkIHBhc3NlZCBkaXJlY3RseSB0byBzaGFycFxuICovXG5jb25zdCBhcHBseVBheWxvYWRBZGp1c3RtZW50cyA9IChcbiAgeyBmaXQsIGhlaWdodCwgd2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pID0+IHtcbiAgaWYgKGZpdCA9PT0gJ2NvbnRhaW4nIHx8IGZpdCA9PT0gJ2luc2lkZScpIHJldHVybiBmYWxzZVxuICBpZiAoIWlzTnVtYmVyKGhlaWdodCkgJiYgIWlzTnVtYmVyKHdpZHRoKSkgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3QgdGFyZ2V0QXNwZWN0UmF0aW8gPSB3aWR0aCAvIGhlaWdodFxuICBjb25zdCBvcmlnaW5hbEFzcGVjdFJhdGlvID0gb3JpZ2luYWwud2lkdGggLyBvcmlnaW5hbC5oZWlnaHRcbiAgaWYgKG9yaWdpbmFsQXNwZWN0UmF0aW8gPT09IHRhcmdldEFzcGVjdFJhdGlvKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBza2lwRW5sYXJnZW1lbnQgPSB3aXRob3V0RW5sYXJnZW1lbnQgJiYgKG9yaWdpbmFsLmhlaWdodCA8IGhlaWdodCB8fCBvcmlnaW5hbC53aWR0aCA8IHdpZHRoKVxuICBjb25zdCBza2lwUmVkdWN0aW9uID0gd2l0aG91dFJlZHVjdGlvbiAmJiAob3JpZ2luYWwuaGVpZ2h0ID4gaGVpZ2h0IHx8IG9yaWdpbmFsLndpZHRoID4gd2lkdGgpXG4gIGlmIChza2lwRW5sYXJnZW1lbnQgfHwgc2tpcFJlZHVjdGlvbikgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgcmVzaXplIGNvbmZpZy4gSWYgdGhlIHJlc2l6ZSBjb25maWcgaGFzIHRoZSBgd2l0aG91dFJlZHVjdGlvbmBcbiAqIHByb3BlcnR5IHNldCB0byB0cnVlLCB0aGUgYGZpdGAgYW5kIGBwb3NpdGlvbmAgcHJvcGVydGllcyB3aWxsIGJlIHNldCB0byBgY29udGFpbmBcbiAqIGFuZCBgdG9wIGxlZnRgIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gdGhlIHJlc2l6ZSBjb25maWdcbiAqIEByZXR1cm5zIGEgc2FuaXRpemVkIHJlc2l6ZSBjb25maWdcbiAqL1xuY29uc3Qgc2FuaXRpemVSZXNpemVDb25maWcgPSAocmVzaXplQ29uZmlnOiBJbWFnZVNpemUpOiBJbWFnZVNpemUgPT4ge1xuICBpZiAocmVzaXplQ29uZmlnLndpdGhvdXRSZWR1Y3Rpb24pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzaXplQ29uZmlnLFxuICAgICAgLy8gV2h5IGZpdCBgY29udGFpbmAgc2hvdWxkIGFsc28gYmUgc2V0IHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sb3ZlbGwvc2hhcnAvaXNzdWVzLzM1OTVcbiAgICAgIGZpdDogcmVzaXplQ29uZmlnPy5maXQgfHwgJ2NvbnRhaW4nLFxuICAgICAgcG9zaXRpb246IHJlc2l6ZUNvbmZpZz8ucG9zaXRpb24gfHwgJ2xlZnQgdG9wJyxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc2l6ZUNvbmZpZ1xufVxuXG4vKipcbiAqIEZvciB0aGUgcHJvdmlkZWQgaW1hZ2Ugc2l6ZXMsIGhhbmRsZSB0aGUgcmVzaXppbmcgYW5kIHRoZSB0cmFuc2Zvcm1zXG4gKiAoZm9ybWF0LCB0cmltLCBldGMuKSBvZiBlYWNoIHJlcXVlc3RlZCBpbWFnZSBzaXplIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBvYmplY3QuXG4gKiBUaGlzIG9ubHkgaGFuZGxlcyB0aGUgaW1hZ2Ugc2l6ZXMuIFRoZSB0cmFuc2Zvcm1zIG9mIHRoZSBvcmlnaW5hbCBpbWFnZVxuICogYXJlIGhhbmRsZWQgaW4ge0BsaW5rIC4vZ2VuZXJhdGVGaWxlRGF0YS50c30uXG4gKlxuICogVGhlIGltYWdlIHdpbGwgYmUgcmVzaXplZCBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkXG4gKiByZXNpemUgY29uZmlnLiBJZiBubyBpbWFnZSBzaXplcyBhcmUgcmVxdWVzdGVkLCB0aGUgcmVzb2x2ZWQgZGF0YSB3aWxsIGJlIGVtcHR5LlxuICogRm9yIGV2ZXJ5IGltYWdlIHRoYXQgZG9zIG5vdCBuZWVkIHRvIGJlIHJlc2l6ZWQsIGFuIHJlc3VsdCBvYmplY3Qgd2l0aCBgbnVsbGBcbiAqIHBhcmFtZXRlcnMgd2lsbCBiZSByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gdGhlIHJlc2l6ZSBjb25maWdcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHJlc2l6ZSBvcGVyYXRpb24ocylcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gIGNvbmZpZyxcbiAgZGltZW5zaW9ucyxcbiAgZmlsZSxcbiAgbWltZVR5cGUsXG4gIHJlcSxcbiAgc2F2ZWRGaWxlbmFtZSxcbiAgc3RhdGljUGF0aCxcbiAgdXBsb2FkRWRpdHMsXG59OiBSZXNpemVBcmdzKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiB7XG4gIGNvbnN0IHsgZm9jYWxQb2ludDogZm9jYWxQb2ludEVuYWJsZWQgPSB0cnVlLCBpbWFnZVNpemVzIH0gPSBjb25maWcudXBsb2FkXG5cbiAgLy8gTm90aW5nIHRvIHJlc2l6ZSBoZXJlIHNvIHJldHVybiBhcyBlYXJseSBhcyBwb3NzaWJsZVxuICBpZiAoIWltYWdlU2l6ZXMpIHJldHVybiB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH1cblxuICBjb25zdCBzaGFycEJhc2UgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuXG4gIC8vIEZvY2FsIHBvaW50IGFkanVzdG1lbnRzXG4gIGNvbnN0IGluY29taW5nRm9jYWxQb2ludCA9IHVwbG9hZEVkaXRzLmZvY2FsUG9pbnRcbiAgICA/IHtcbiAgICAgICAgeDogaXNOdW1iZXIodXBsb2FkRWRpdHMuZm9jYWxQb2ludC54KSA/IE1hdGgucm91bmQodXBsb2FkRWRpdHMuZm9jYWxQb2ludC54KSA6IDUwLFxuICAgICAgICB5OiBpc051bWJlcih1cGxvYWRFZGl0cy5mb2NhbFBvaW50LnkpID8gTWF0aC5yb3VuZCh1cGxvYWRFZGl0cy5mb2NhbFBvaW50LnkpIDogNTAsXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWRcblxuICBjb25zdCByZXN1bHRzOiBJbWFnZVNpemVzUmVzdWx0W10gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBpbWFnZVNpemVzLm1hcChhc3luYyAoaW1hZ2VSZXNpemVDb25maWcpOiBQcm9taXNlPEltYWdlU2l6ZXNSZXN1bHQ+ID0+IHtcbiAgICAgIGltYWdlUmVzaXplQ29uZmlnID0gc2FuaXRpemVSZXNpemVDb25maWcoaW1hZ2VSZXNpemVDb25maWcpXG5cbiAgICAgIC8vIFRoaXMgY2hlY2tzIGlmIGEgcmVzaXplIHNob3VsZCBoYXBwZW4uIElmIG5vdCwgdGhlIHJlc2l6ZWQgaW1hZ2Ugd2lsbCBiZVxuICAgICAgLy8gc2tpcHBlZCBDT01QTEVURUxZIGFuZCB0aHVzIHdpbGwgbm90IGJlIGluY2x1ZGVkIGluIHRoZSByZXN1bHRpbmcgaW1hZ2VzLlxuICAgICAgLy8gQWxsIGZ1cnRoZXIgZm9ybWF0L3RyaW0gb3B0aW9ucyB3aWxsIHRodXMgYmUgc2tpcHBlZCBhcyB3ZWxsLlxuICAgICAgaWYgKHByZXZlbnRSZXNpemUoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVSZXN1bHQoeyBuYW1lOiBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lIH0pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGltYWdlVG9SZXNpemUgPSBzaGFycEJhc2UuY2xvbmUoKVxuICAgICAgbGV0IHJlc2l6ZWQgPSBpbWFnZVRvUmVzaXplXG5cbiAgICAgIGlmIChpbmNvbWluZ0ZvY2FsUG9pbnQgJiYgYXBwbHlQYXlsb2FkQWRqdXN0bWVudHMoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpKSB7XG4gICAgICAgIGNvbnN0IHsgaGVpZ2h0OiByZXNpemVIZWlnaHQsIHdpZHRoOiByZXNpemVXaWR0aCB9ID0gaW1hZ2VSZXNpemVDb25maWdcbiAgICAgICAgY29uc3QgcmVzaXplQXNwZWN0UmF0aW8gPSByZXNpemVXaWR0aCAvIHJlc2l6ZUhlaWdodFxuICAgICAgICBjb25zdCBvcmlnaW5hbEFzcGVjdFJhdGlvID0gZGltZW5zaW9ucy53aWR0aCAvIGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgICAgIGNvbnN0IHByaW9yaXRpemVIZWlnaHQgPSByZXNpemVBc3BlY3RSYXRpbyA8IG9yaWdpbmFsQXNwZWN0UmF0aW9cblxuICAgICAgICAvLyBTY2FsZSB0aGUgaW1hZ2UgdXAgb3IgZG93biB0byBmaXQgdGhlIHJlc2l6ZSBkaW1lbnNpb25zXG4gICAgICAgIGNvbnN0IHNjYWxlZEltYWdlID0gaW1hZ2VUb1Jlc2l6ZS5yZXNpemUoe1xuICAgICAgICAgIGhlaWdodDogcHJpb3JpdGl6ZUhlaWdodCA/IHJlc2l6ZUhlaWdodCA6IG51bGwsXG4gICAgICAgICAgd2lkdGg6IHByaW9yaXRpemVIZWlnaHQgPyBudWxsIDogcmVzaXplV2lkdGgsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IHsgaW5mbzogc2NhbGVkSW1hZ2VJbmZvIH0gPSBhd2FpdCBzY2FsZWRJbWFnZS50b0J1ZmZlcih7IHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlIH0pXG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZVdpZHRoID0gcmVzaXplV2lkdGggPz8gc2NhbGVkSW1hZ2VJbmZvLndpZHRoXG4gICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBzY2FsZWRJbWFnZUluZm8ud2lkdGggLSBzYWZlUmVzaXplV2lkdGhcbiAgICAgICAgY29uc3QgbGVmdEZvY2FsRWRnZSA9IE1hdGgucm91bmQoXG4gICAgICAgICAgc2NhbGVkSW1hZ2VJbmZvLndpZHRoICogKGluY29taW5nRm9jYWxQb2ludC54IC8gMTAwKSAtIHNhZmVSZXNpemVXaWR0aCAvIDIsXG4gICAgICAgIClcbiAgICAgICAgY29uc3Qgc2FmZU9mZnNldFggPSBNYXRoLm1pbihNYXRoLm1heCgwLCBsZWZ0Rm9jYWxFZGdlKSwgbWF4T2Zmc2V0WClcblxuICAgICAgICBjb25zdCBzYWZlUmVzaXplSGVpZ2h0ID0gcmVzaXplSGVpZ2h0ID8/IHNjYWxlZEltYWdlSW5mby5oZWlnaHRcbiAgICAgICAgY29uc3QgbWF4T2Zmc2V0WSA9IHNjYWxlZEltYWdlSW5mby5oZWlnaHQgLSBzYWZlUmVzaXplSGVpZ2h0XG4gICAgICAgIGNvbnN0IHRvcEZvY2FsRWRnZSA9IE1hdGgucm91bmQoXG4gICAgICAgICAgc2NhbGVkSW1hZ2VJbmZvLmhlaWdodCAqIChpbmNvbWluZ0ZvY2FsUG9pbnQueSAvIDEwMCkgLSBzYWZlUmVzaXplSGVpZ2h0IC8gMixcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBzYWZlT2Zmc2V0WSA9IE1hdGgubWluKE1hdGgubWF4KDAsIHRvcEZvY2FsRWRnZSksIG1heE9mZnNldFkpXG5cbiAgICAgICAgLy8gZXh0cmFjdCB0aGUgZm9jYWwgYXJlYSBmcm9tIHRoZSBzY2FsZWQgaW1hZ2VcbiAgICAgICAgcmVzaXplZCA9IHNjYWxlZEltYWdlLmV4dHJhY3Qoe1xuICAgICAgICAgIGhlaWdodDogc2FmZVJlc2l6ZUhlaWdodCxcbiAgICAgICAgICBsZWZ0OiBzYWZlT2Zmc2V0WCxcbiAgICAgICAgICB0b3A6IHNhZmVPZmZzZXRZLFxuICAgICAgICAgIHdpZHRoOiBzYWZlUmVzaXplV2lkdGgsXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNpemVkID0gaW1hZ2VUb1Jlc2l6ZS5yZXNpemUoaW1hZ2VSZXNpemVDb25maWcpXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy5mb3JtYXRPcHRpb25zKSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnRvRm9ybWF0KFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMuZm9ybWF0LFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1hZ2VSZXNpemVDb25maWcudHJpbU9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudHJpbShpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucylcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBkYXRhOiBidWZmZXJEYXRhLCBpbmZvOiBidWZmZXJJbmZvIH0gPSBhd2FpdCByZXNpemVkLnRvQnVmZmVyKHtcbiAgICAgICAgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBzYW5pdGl6ZWRJbWFnZSA9IGdldFNhbml0aXplZEltYWdlRGF0YShzYXZlZEZpbGVuYW1lKVxuXG4gICAgICBpZiAocmVxLnBheWxvYWRVcGxvYWRTaXplcykge1xuICAgICAgICByZXEucGF5bG9hZFVwbG9hZFNpemVzW2ltYWdlUmVzaXplQ29uZmlnLm5hbWVdID0gYnVmZmVyRGF0YVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtaW1lSW5mbyA9IGF3YWl0IGZyb21CdWZmZXIoYnVmZmVyRGF0YSlcblxuICAgICAgY29uc3QgaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMgPSBjcmVhdGVJbWFnZU5hbWUoXG4gICAgICAgIHNhbml0aXplZEltYWdlLm5hbWUsXG4gICAgICAgIGJ1ZmZlckluZm8sXG4gICAgICAgIG1pbWVJbmZvPy5leHQgfHwgc2FuaXRpemVkSW1hZ2UuZXh0LFxuICAgICAgKVxuXG4gICAgICBjb25zdCBpbWFnZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ltYWdlTmFtZVdpdGhEaW1lbnNpb25zfWBcblxuICAgICAgaWYgKGF3YWl0IGZpbGVFeGlzdHMoaW1hZ2VQYXRoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGZzLnVubGlua1N5bmMoaW1hZ2VQYXRoKVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJZ25vcmUgdW5saW5rIGVycm9yc1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBzaXplLCB3aWR0aCB9ID0gYnVmZmVySW5mb1xuICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdCh7XG4gICAgICAgIG5hbWU6IGltYWdlUmVzaXplQ29uZmlnLm5hbWUsXG4gICAgICAgIGZpbGVuYW1lOiBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyxcbiAgICAgICAgZmlsZXNpemU6IHNpemUsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgbWltZVR5cGU6IG1pbWVJbmZvPy5taW1lIHx8IG1pbWVUeXBlLFxuICAgICAgICBzaXplc1RvU2F2ZTogW3sgYnVmZmVyOiBidWZmZXJEYXRhLCBwYXRoOiBpbWFnZVBhdGggfV0sXG4gICAgICAgIHdpZHRoLFxuICAgICAgfSlcbiAgICB9KSxcbiAgKVxuXG4gIHJldHVybiByZXN1bHRzLnJlZHVjZShcbiAgICAoYWNjLCByZXN1bHQpID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24oYWNjLnNpemVEYXRhLCByZXN1bHQuc2l6ZURhdGEpXG4gICAgICBhY2Muc2l6ZXNUb1NhdmUucHVzaCguLi5yZXN1bHQuc2l6ZXNUb1NhdmUpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSxcbiAgICB7XG4gICAgICAuLi4oZm9jYWxQb2ludEVuYWJsZWQgJiYgaW5jb21pbmdGb2NhbFBvaW50ICYmIHsgZm9jYWxQb2ludDogaW5jb21pbmdGb2NhbFBvaW50IH0pLFxuICAgICAgc2l6ZURhdGE6IHt9LFxuICAgICAgc2l6ZXNUb1NhdmU6IFtdLFxuICAgIH0sXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwiZ2V0U2FuaXRpemVkSW1hZ2VEYXRhIiwic291cmNlSW1hZ2UiLCJleHRlbnNpb24iLCJzcGxpdCIsInBvcCIsIm5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZXh0IiwiY3JlYXRlSW1hZ2VOYW1lIiwib3V0cHV0SW1hZ2VOYW1lIiwiaGVpZ2h0Iiwid2lkdGgiLCJjcmVhdGVSZXN1bHQiLCJmaWxlbmFtZSIsImZpbGVzaXplIiwibWltZVR5cGUiLCJzaXplc1RvU2F2ZSIsInNpemVEYXRhIiwicHJldmVudFJlc2l6ZSIsImRlc2lyZWRIZWlnaHQiLCJkZXNpcmVkV2lkdGgiLCJ3aXRob3V0RW5sYXJnZW1lbnQiLCJ3aXRob3V0UmVkdWN0aW9uIiwib3JpZ2luYWwiLCJ1bmRlZmluZWQiLCJpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkIiwiaGFzSW5zdWZmaWNpZW50V2lkdGgiLCJoYXNJbnN1ZmZpY2llbnRIZWlnaHQiLCJhcHBseVBheWxvYWRBZGp1c3RtZW50cyIsImZpdCIsImlzTnVtYmVyIiwidGFyZ2V0QXNwZWN0UmF0aW8iLCJvcmlnaW5hbEFzcGVjdFJhdGlvIiwic2tpcEVubGFyZ2VtZW50Iiwic2tpcFJlZHVjdGlvbiIsInNhbml0aXplUmVzaXplQ29uZmlnIiwicmVzaXplQ29uZmlnIiwicG9zaXRpb24iLCJjb25maWciLCJkaW1lbnNpb25zIiwiZmlsZSIsInJlcSIsInNhdmVkRmlsZW5hbWUiLCJzdGF0aWNQYXRoIiwidXBsb2FkRWRpdHMiLCJmb2NhbFBvaW50IiwiZm9jYWxQb2ludEVuYWJsZWQiLCJpbWFnZVNpemVzIiwidXBsb2FkIiwic2hhcnBCYXNlIiwic2hhcnAiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwicm90YXRlIiwiaW5jb21pbmdGb2NhbFBvaW50IiwieCIsIk1hdGgiLCJyb3VuZCIsInkiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImltYWdlUmVzaXplQ29uZmlnIiwiaW1hZ2VUb1Jlc2l6ZSIsImNsb25lIiwicmVzaXplZCIsInJlc2l6ZUhlaWdodCIsInJlc2l6ZVdpZHRoIiwicmVzaXplQXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0Iiwic2NhbGVkSW1hZ2UiLCJyZXNpemUiLCJpbmZvIiwic2NhbGVkSW1hZ2VJbmZvIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsInNhZmVSZXNpemVXaWR0aCIsIm1heE9mZnNldFgiLCJsZWZ0Rm9jYWxFZGdlIiwic2FmZU9mZnNldFgiLCJtaW4iLCJtYXgiLCJzYWZlUmVzaXplSGVpZ2h0IiwibWF4T2Zmc2V0WSIsInRvcEZvY2FsRWRnZSIsInNhZmVPZmZzZXRZIiwiZXh0cmFjdCIsImxlZnQiLCJ0b3AiLCJmb3JtYXRPcHRpb25zIiwidG9Gb3JtYXQiLCJmb3JtYXQiLCJvcHRpb25zIiwidHJpbU9wdGlvbnMiLCJ0cmltIiwiYnVmZmVyRGF0YSIsImJ1ZmZlckluZm8iLCJzYW5pdGl6ZWRJbWFnZSIsInBheWxvYWRVcGxvYWRTaXplcyIsIm1pbWVJbmZvIiwiZnJvbUJ1ZmZlciIsImltYWdlTmFtZVdpdGhEaW1lbnNpb25zIiwiaW1hZ2VQYXRoIiwiZmlsZUV4aXN0cyIsImZzIiwidW5saW5rU3luYyIsInNpemUiLCJtaW1lIiwiYnVmZmVyIiwicGF0aCIsInJlZHVjZSIsImFjYyIsInJlc3VsdCIsIk9iamVjdCIsImFzc2lnbiIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7K0JBbU5BOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDRDs7O2VBQThCQTs7OzBCQTlOSDsyREFDWjt5RUFDTTs4REFDSDswQkFhTzttRUFDRjs7Ozs7O0FBeUJ2Qjs7Ozs7Q0FLQyxHQUNELE1BQU1D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
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcbmltcG9ydCB0eXBlIHsgT3V0cHV0SW5mbyB9IGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgeyBmcm9tQnVmZmVyIH0gZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuaW1wb3J0IHNoYXJwIGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgRmlsZVNpemUsXG4gIEZpbGVTaXplcyxcbiAgRmlsZVRvU2F2ZSxcbiAgSW1hZ2VTaXplLFxuICBQcm9iZWRJbWFnZVNpemUsXG4gIFVwbG9hZEVkaXRzLFxufSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4uL3V0aWxpdGllcy9pc051bWJlcidcbmltcG9ydCBmaWxlRXhpc3RzIGZyb20gJy4vZmlsZUV4aXN0cydcblxudHlwZSBSZXNpemVBcmdzID0ge1xuICBjb25maWc6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgZGltZW5zaW9uczogUHJvYmVkSW1hZ2VTaXplXG4gIGZpbGU6IFVwbG9hZGVkRmlsZVxuICBtaW1lVHlwZTogc3RyaW5nXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2F2ZWRGaWxlbmFtZTogc3RyaW5nXG4gIHN0YXRpY1BhdGg6IHN0cmluZ1xuICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG59XG5cbi8qKiBSZXN1bHQgZnJvbSByZXNpemluZyBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZXMgKi9cbnR5cGUgSW1hZ2VTaXplc1Jlc3VsdCA9IHtcbiAgZm9jYWxQb2ludD86IFVwbG9hZEVkaXRzWydmb2NhbFBvaW50J11cbiAgc2l6ZURhdGE6IEZpbGVTaXplc1xuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdXG59XG5cbnR5cGUgU2FuaXRpemVkSW1hZ2VEYXRhID0ge1xuICBleHQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgaW1hZ2UgbmFtZSBhbmQgZXh0cmFjdCB0aGUgZXh0ZW5zaW9uIGZyb20gdGhlIHNvdXJjZSBpbWFnZVxuICpcbiAqIEBwYXJhbSBzb3VyY2VJbWFnZSAtIHRoZSBzb3VyY2UgaW1hZ2VcbiAqIEByZXR1cm5zIHRoZSBzYW5pdGl6ZWQgbmFtZSBhbmQgZXh0ZW5zaW9uXG4gKi9cbmNvbnN0IGdldFNhbml0aXplZEltYWdlRGF0YSA9IChzb3VyY2VJbWFnZTogc3RyaW5nKTogU2FuaXRpemVkSW1hZ2VEYXRhID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gc291cmNlSW1hZ2Uuc3BsaXQoJy4nKS5wb3AoKVxuICBjb25zdCBuYW1lID0gc2FuaXRpemUoc291cmNlSW1hZ2Uuc3Vic3RyaW5nKDAsIHNvdXJjZUltYWdlLmxhc3RJbmRleE9mKCcuJykpIHx8IHNvdXJjZUltYWdlKVxuICByZXR1cm4geyBuYW1lLCBleHQ6IGV4dGVuc2lvbiB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGltYWdlIG5hbWUgYmFzZWQgb24gdGhlIG91dHB1dCBpbWFnZSBuYW1lLCB0aGUgZGltZW5zaW9ucyBhbmRcbiAqIHRoZSBleHRlbnNpb24uXG4gKlxuICogSWdub3JlIHRoZSBmYWN0IHRoYXQgZHVwbGljYXRlIG5hbWVzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGhlcmUgaXMgb25lXG4gKiBzaXplIHdpdGggYHdpZHRoIEFORCBoZWlnaHRgIGFuZCBvbmUgd2l0aCBvbmx5IGBoZWlnaHQgT1Igd2lkdGhgLiBCZWNhdXNlXG4gKiBzcGFjZSBpcyBleHBlbnNpdmUsIHdlIHdpbGwgcmV1c2UgdGhlIHNhbWUgaW1hZ2UgZm9yIGJvdGggc2l6ZXMuXG4gKlxuICogQHBhcmFtIG91dHB1dEltYWdlTmFtZSAtIHRoZSBzYW5pdGl6ZWQgaW1hZ2UgbmFtZVxuICogQHBhcmFtIGJ1ZmZlckluZm8gLSB0aGUgYnVmZmVyIGluZm9cbiAqIEBwYXJhbSBleHRlbnNpb24gLSB0aGUgZXh0ZW5zaW9uIHRvIHVzZVxuICogQHJldHVybnMgdGhlIG5ldyBpbWFnZSBuYW1lIHRoYXQgaXMgbm90IHRha2VuXG4gKi9cbmNvbnN0IGNyZWF0ZUltYWdlTmFtZSA9IChcbiAgb3V0cHV0SW1hZ2VOYW1lOiBzdHJpbmcsXG4gIHsgaGVpZ2h0LCB3aWR0aCB9OiBPdXRwdXRJbmZvLFxuICBleHRlbnNpb246IHN0cmluZyxcbikgPT4gYCR7b3V0cHV0SW1hZ2VOYW1lfS0ke3dpZHRofXgke2hlaWdodH0uJHtleHRlbnNpb259YFxuXG50eXBlIENyZWF0ZVJlc3VsdEFyZ3MgPSB7XG4gIGZpbGVuYW1lPzogRmlsZVNpemVbJ2ZpbGVuYW1lJ11cbiAgZmlsZXNpemU/OiBGaWxlU2l6ZVsnZmlsZXNpemUnXVxuICBoZWlnaHQ/OiBGaWxlU2l6ZVsnaGVpZ2h0J11cbiAgbWltZVR5cGU/OiBGaWxlU2l6ZVsnbWltZVR5cGUnXVxuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZXNUb1NhdmU/OiBGaWxlVG9TYXZlW11cbiAgd2lkdGg/OiBGaWxlU2l6ZVsnd2lkdGgnXVxufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgcmVzdWx0IG9iamVjdCBmb3IgdGhlIGltYWdlIHJlc2l6ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXJhbWV0ZXJzLiBJZiB0aGUgbmFtZSBpcyBub3QgcHJvdmlkZWQsIGFuIGVtcHR5IHJlc3VsdCBvYmplY3RcbiAqIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gd2lkdGggLSB0aGUgd2lkdGggb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gaGVpZ2h0IC0gdGhlIGhlaWdodCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlc2l6ZSAtIHRoZSBmaWxlc2l6ZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBtaW1lVHlwZSAtIHRoZSBtaW1lIHR5cGUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gc2l6ZXNUb1NhdmUgLSB0aGUgc2l6ZXMgdG8gc2F2ZVxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvYmplY3RcbiAqL1xuY29uc3QgY3JlYXRlUmVzdWx0ID0gKHtcbiAgbmFtZSxcbiAgZmlsZW5hbWUgPSBudWxsLFxuICBmaWxlc2l6ZSA9IG51bGwsXG4gIGhlaWdodCA9IG51bGwsXG4gIG1pbWVUeXBlID0gbnVsbCxcbiAgc2l6ZXNUb1NhdmUgPSBbXSxcbiAgd2lkdGggPSBudWxsLFxufTogQ3JlYXRlUmVzdWx0QXJncyk6IEltYWdlU2l6ZXNSZXN1bHQgPT4ge1xuICByZXR1cm4ge1xuICAgIHNpemVEYXRhOiB7XG4gICAgICBbbmFtZV06IHtcbiAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgIGZpbGVzaXplLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIG1pbWVUeXBlLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzaXplc1RvU2F2ZSxcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnNcbiAqIGFuZCB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZS4gSWYgdGhlIHJlc2l6ZSBvcHRpb25zIHdpdGhvdXRFbmxhcmdlbWVudCBvciB3aXRob3V0UmVkdWN0aW9uIGFyZSBwcm92aWRlZCxcbiAqIHRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMsIGdpdmVuIHRoYXQgdGhlXG4gKiB3aWR0aCBvciBoZWlnaHQgdG8gYmUgcmVzaXplZCBpcyBwcm92aWRlZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgcmVzaXppbmcgaXMgbm90IG5lZWRlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmNvbnN0IHByZXZlbnRSZXNpemUgPSAoXG4gIHsgaGVpZ2h0OiBkZXNpcmVkSGVpZ2h0LCB3aWR0aDogZGVzaXJlZFdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKTogYm9vbGVhbiA9PiB7XG4gIC8vIGRlZmF1bHQgaXMgdG8gYWxsb3cgcmVkdWN0aW9uXG4gIGlmICh3aXRob3V0UmVkdWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICAvLyBkZWZhdWx0IGlzIHRvIHByZXZlbnQgZW5sYXJnZW1lbnRcbiAgaWYgKHdpdGhvdXRFbmxhcmdlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCA9ICFkZXNpcmVkSGVpZ2h0IHx8ICFkZXNpcmVkV2lkdGhcbiAgaWYgKGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQpIHtcbiAgICAvLyBJZiB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBub3QgZGVmaW5lZCwgaXQgbWVhbnMgdGhlcmUgaXMgYSBmb3JtYXQgY29udmVyc2lvblxuICAgIC8vIGFuZCB0aGUgaW1hZ2UgbmVlZHMgdG8gYmUgXCJyZXNpemVkXCIgKHRyYW5zZm9ybWVkKS5cbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRXaWR0aCA9IGRlc2lyZWRXaWR0aCA+IG9yaWdpbmFsLndpZHRoXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudEhlaWdodCA9IGRlc2lyZWRIZWlnaHQgPiBvcmlnaW5hbC5oZWlnaHRcbiAgaWYgKGhhc0luc3VmZmljaWVudFdpZHRoICYmIGhhc0luc3VmZmljaWVudEhlaWdodCkge1xuICAgIC8vIGRvZXNuJ3QgbmVlZCByZXNpemUgLSBwcmV2ZW50IGVubGFyZ2VtZW50LiBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBib3RoIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGluc3VmZmljaWVudC5cbiAgICAvLyBpZiBvbmx5IG9uZSBkaW1lbnNpb24gaXMgaW5zdWZmaWNpZW50IGFuZCB0aGUgb3RoZXIgaXMgc3VmZmljaWVudCwgcmVzaXppbmcgbmVlZHMgdG8gaGFwcGVuLCBhcyB0aGUgaW1hZ2VcbiAgICAvLyBzaG91bGQgYmUgcmVzaXplZCB0byB0aGUgc3VmZmljaWVudCBkaW1lbnNpb24uXG4gICAgcmV0dXJuIHRydWUgLy8gZG8gbm90IGNyZWF0ZSBhIG5ldyBzaXplXG4gIH1cblxuICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGltYWdlIHNob3VsZCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gc2hhcnAgd2l0aG91dCBwYXlsb2FkIGFkanVzdGluZyBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMgYW5kIHJlc2l6ZSBvcHRpb25zXG4gKiBAcGFyYW0gb3JpZ2luYWwgLSB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgaW1hZ2Ugc2hvdWxkIHBhc3NlZCBkaXJlY3RseSB0byBzaGFycFxuICovXG5jb25zdCBhcHBseVBheWxvYWRBZGp1c3RtZW50cyA9IChcbiAgeyBmaXQsIGhlaWdodCwgd2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pID0+IHtcbiAgaWYgKGZpdCA9PT0gJ2NvbnRhaW4nIHx8IGZpdCA9PT0gJ2luc2lkZScpIHJldHVybiBmYWxzZVxuICBpZiAoIWlzTnVtYmVyKGhlaWdodCkgJiYgIWlzTnVtYmVyKHdpZHRoKSkgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3QgdGFyZ2V0QXNwZWN0UmF0aW8gPSB3aWR0aCAvIGhlaWdodFxuICBjb25zdCBvcmlnaW5hbEFzcGVjdFJhdGlvID0gb3JpZ2luYWwud2lkdGggLyBvcmlnaW5hbC5oZWlnaHRcbiAgaWYgKG9yaWdpbmFsQXNwZWN0UmF0aW8gPT09IHRhcmdldEFzcGVjdFJhdGlvKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBza2lwRW5sYXJnZW1lbnQgPSB3aXRob3V0RW5sYXJnZW1lbnQgJiYgKG9yaWdpbmFsLmhlaWdodCA8IGhlaWdodCB8fCBvcmlnaW5hbC53aWR0aCA8IHdpZHRoKVxuICBjb25zdCBza2lwUmVkdWN0aW9uID0gd2l0aG91dFJlZHVjdGlvbiAmJiAob3JpZ2luYWwuaGVpZ2h0ID4gaGVpZ2h0IHx8IG9yaWdpbmFsLndpZHRoID4gd2lkdGgpXG4gIGlmIChza2lwRW5sYXJnZW1lbnQgfHwgc2tpcFJlZHVjdGlvbikgcmV0dXJuIGZhbHNlXG5cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBTYW5pdGl6ZSB0aGUgcmVzaXplIGNvbmZpZy4gSWYgdGhlIHJlc2l6ZSBjb25maWcgaGFzIHRoZSBgd2l0aG91dFJlZHVjdGlvbmBcbiAqIHByb3BlcnR5IHNldCB0byB0cnVlLCB0aGUgYGZpdGAgYW5kIGBwb3NpdGlvbmAgcHJvcGVydGllcyB3aWxsIGJlIHNldCB0byBgY29udGFpbmBcbiAqIGFuZCBgdG9wIGxlZnRgIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gdGhlIHJlc2l6ZSBjb25maWdcbiAqIEByZXR1cm5zIGEgc2FuaXRpemVkIHJlc2l6ZSBjb25maWdcbiAqL1xuY29uc3Qgc2FuaXRpemVSZXNpemVDb25maWcgPSAocmVzaXplQ29uZmlnOiBJbWFnZVNpemUpOiBJbWFnZVNpemUgPT4ge1xuICBpZiAocmVzaXplQ29uZmlnLndpdGhvdXRSZWR1Y3Rpb24pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzaXplQ29uZmlnLFxuICAgICAgLy8gV2h5IGZpdCBgY29udGFpbmAgc2hvdWxkIGFsc28gYmUgc2V0IHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9sb3ZlbGwvc2hhcnAvaXNzdWVzLzM1OTVcbiAgICAgIGZpdDogcmVzaXplQ29uZmlnPy5maXQgfHwgJ2NvbnRhaW4nLFxuICAgICAgcG9zaXRpb246IHJlc2l6ZUNvbmZpZz8ucG9zaXRpb24gfHwgJ2xlZnQgdG9wJyxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc2l6ZUNvbmZpZ1xufVxuXG4vKipcbiAqIEZvciB0aGUgcHJvdmlkZWQgaW1hZ2Ugc2l6ZXMsIGhhbmRsZSB0aGUgcmVzaXppbmcgYW5kIHRoZSB0cmFuc2Zvcm1zXG4gKiAoZm9ybWF0LCB0cmltLCBldGMuKSBvZiBlYWNoIHJlcXVlc3RlZCBpbWFnZSBzaXplIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBvYmplY3QuXG4gKiBUaGlzIG9ubHkgaGFuZGxlcyB0aGUgaW1hZ2Ugc2l6ZXMuIFRoZSB0cmFuc2Zvcm1zIG9mIHRoZSBvcmlnaW5hbCBpbWFnZVxuICogYXJlIGhhbmRsZWQgaW4ge0BsaW5rIC4vZ2VuZXJhdGVGaWxlRGF0YS50c30uXG4gKlxuICogVGhlIGltYWdlIHdpbGwgYmUgcmVzaXplZCBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkXG4gKiByZXNpemUgY29uZmlnLiBJZiBubyBpbWFnZSBzaXplcyBhcmUgcmVxdWVzdGVkLCB0aGUgcmVzb2x2ZWQgZGF0YSB3aWxsIGJlIGVtcHR5LlxuICogRm9yIGV2ZXJ5IGltYWdlIHRoYXQgZG9zIG5vdCBuZWVkIHRvIGJlIHJlc2l6ZWQsIGFuIHJlc3VsdCBvYmplY3Qgd2l0aCBgbnVsbGBcbiAqIHBhcmFtZXRlcnMgd2lsbCBiZSByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gdGhlIHJlc2l6ZSBjb25maWdcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHJlc2l6ZSBvcGVyYXRpb24ocylcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gIGNvbmZpZyxcbiAgZGltZW5zaW9ucyxcbiAgZmlsZSxcbiAgbWltZVR5cGUsXG4gIHJlcSxcbiAgc2F2ZWRGaWxlbmFtZSxcbiAgc3RhdGljUGF0aCxcbiAgdXBsb2FkRWRpdHMsXG59OiBSZXNpemVBcmdzKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiB7XG4gIGNvbnN0IHsgZm9jYWxQb2ludDogZm9jYWxQb2ludEVuYWJsZWQgPSB0cnVlLCBpbWFnZVNpemVzIH0gPSBjb25maWcudXBsb2FkXG5cbiAgLy8gRm9jYWwgcG9pbnQgYWRqdXN0bWVudHNcbiAgY29uc3QgaW5jb21pbmdGb2NhbFBvaW50ID0gdXBsb2FkRWRpdHMuZm9jYWxQb2ludFxuICAgID8ge1xuICAgICAgICB4OiBpc051bWJlcih1cGxvYWRFZGl0cy5mb2NhbFBvaW50LngpID8gTWF0aC5yb3VuZCh1cGxvYWRFZGl0cy5mb2NhbFBvaW50LngpIDogNTAsXG4gICAgICAgIHk6IGlzTnVtYmVyKHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQueSkgPyBNYXRoLnJvdW5kKHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQueSkgOiA1MCxcbiAgICAgIH1cbiAgICA6IHVuZGVmaW5lZFxuXG4gIGNvbnN0IGRlZmF1bHRSZXN1bHQ6IEltYWdlU2l6ZXNSZXN1bHQgPSB7XG4gICAgLi4uKGZvY2FsUG9pbnRFbmFibGVkICYmIGluY29taW5nRm9jYWxQb2ludCAmJiB7IGZvY2FsUG9pbnQ6IGluY29taW5nRm9jYWxQb2ludCB9KSxcbiAgICBzaXplRGF0YToge30sXG4gICAgc2l6ZXNUb1NhdmU6IFtdLFxuICB9XG5cbiAgLy8gTm90aGluZyB0byByZXNpemUgaGVyZSBzbyByZXR1cm4gYXMgZWFybHkgYXMgcG9zc2libGVcbiAgaWYgKCFpbWFnZVNpemVzKSByZXR1cm4gZGVmYXVsdFJlc3VsdFxuXG4gIGNvbnN0IHNoYXJwQmFzZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoIHx8IGZpbGUuZGF0YSkucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG5cbiAgY29uc3QgcmVzdWx0czogSW1hZ2VTaXplc1Jlc3VsdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgaW1hZ2VTaXplcy5tYXAoYXN5bmMgKGltYWdlUmVzaXplQ29uZmlnKTogUHJvbWlzZTxJbWFnZVNpemVzUmVzdWx0PiA9PiB7XG4gICAgICBpbWFnZVJlc2l6ZUNvbmZpZyA9IHNhbml0aXplUmVzaXplQ29uZmlnKGltYWdlUmVzaXplQ29uZmlnKVxuXG4gICAgICAvLyBUaGlzIGNoZWNrcyBpZiBhIHJlc2l6ZSBzaG91bGQgaGFwcGVuLiBJZiBub3QsIHRoZSByZXNpemVkIGltYWdlIHdpbGwgYmVcbiAgICAgIC8vIHNraXBwZWQgQ09NUExFVEVMWSBhbmQgdGh1cyB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0aW5nIGltYWdlcy5cbiAgICAgIC8vIEFsbCBmdXJ0aGVyIGZvcm1hdC90cmltIG9wdGlvbnMgd2lsbCB0aHVzIGJlIHNraXBwZWQgYXMgd2VsbC5cbiAgICAgIGlmIChwcmV2ZW50UmVzaXplKGltYWdlUmVzaXplQ29uZmlnLCBkaW1lbnNpb25zKSkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KHsgbmFtZTogaW1hZ2VSZXNpemVDb25maWcubmFtZSB9KVxuICAgICAgfVxuXG4gICAgICBjb25zdCBpbWFnZVRvUmVzaXplID0gc2hhcnBCYXNlLmNsb25lKClcbiAgICAgIGxldCByZXNpemVkID0gaW1hZ2VUb1Jlc2l6ZVxuXG4gICAgICBpZiAoaW5jb21pbmdGb2NhbFBvaW50ICYmIGFwcGx5UGF5bG9hZEFkanVzdG1lbnRzKGltYWdlUmVzaXplQ29uZmlnLCBkaW1lbnNpb25zKSkge1xuICAgICAgICBjb25zdCB7IGhlaWdodDogcmVzaXplSGVpZ2h0LCB3aWR0aDogcmVzaXplV2lkdGggfSA9IGltYWdlUmVzaXplQ29uZmlnXG4gICAgICAgIGNvbnN0IHJlc2l6ZUFzcGVjdFJhdGlvID0gcmVzaXplV2lkdGggLyByZXNpemVIZWlnaHRcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxBc3BlY3RSYXRpbyA9IGRpbWVuc2lvbnMud2lkdGggLyBkaW1lbnNpb25zLmhlaWdodFxuICAgICAgICBjb25zdCBwcmlvcml0aXplSGVpZ2h0ID0gcmVzaXplQXNwZWN0UmF0aW8gPCBvcmlnaW5hbEFzcGVjdFJhdGlvXG5cbiAgICAgICAgLy8gU2NhbGUgdGhlIGltYWdlIHVwIG9yIGRvd24gdG8gZml0IHRoZSByZXNpemUgZGltZW5zaW9uc1xuICAgICAgICBjb25zdCBzY2FsZWRJbWFnZSA9IGltYWdlVG9SZXNpemUucmVzaXplKHtcbiAgICAgICAgICBoZWlnaHQ6IHByaW9yaXRpemVIZWlnaHQgPyByZXNpemVIZWlnaHQgOiBudWxsLFxuICAgICAgICAgIHdpZHRoOiBwcmlvcml0aXplSGVpZ2h0ID8gbnVsbCA6IHJlc2l6ZVdpZHRoLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCB7IGluZm86IHNjYWxlZEltYWdlSW5mbyB9ID0gYXdhaXQgc2NhbGVkSW1hZ2UudG9CdWZmZXIoeyByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSB9KVxuXG4gICAgICAgIGNvbnN0IHNhZmVSZXNpemVXaWR0aCA9IHJlc2l6ZVdpZHRoID8/IHNjYWxlZEltYWdlSW5mby53aWR0aFxuICAgICAgICBjb25zdCBtYXhPZmZzZXRYID0gc2NhbGVkSW1hZ2VJbmZvLndpZHRoIC0gc2FmZVJlc2l6ZVdpZHRoXG4gICAgICAgIGNvbnN0IGxlZnRGb2NhbEVkZ2UgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIHNjYWxlZEltYWdlSW5mby53aWR0aCAqIChpbmNvbWluZ0ZvY2FsUG9pbnQueCAvIDEwMCkgLSBzYWZlUmVzaXplV2lkdGggLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRYID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgbGVmdEZvY2FsRWRnZSksIG1heE9mZnNldFgpXG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZUhlaWdodCA9IHJlc2l6ZUhlaWdodCA/PyBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0XG4gICAgICAgIGNvbnN0IG1heE9mZnNldFkgPSBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0IC0gc2FmZVJlc2l6ZUhlaWdodFxuICAgICAgICBjb25zdCB0b3BGb2NhbEVkZ2UgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIHNjYWxlZEltYWdlSW5mby5oZWlnaHQgKiAoaW5jb21pbmdGb2NhbFBvaW50LnkgLyAxMDApIC0gc2FmZVJlc2l6ZUhlaWdodCAvIDIsXG4gICAgICAgIClcbiAgICAgICAgY29uc3Qgc2FmZU9mZnNldFkgPSBNYXRoLm1pbihNYXRoLm1heCgwLCB0b3BGb2NhbEVkZ2UpLCBtYXhPZmZzZXRZKVxuXG4gICAgICAgIC8vIGV4dHJhY3QgdGhlIGZvY2FsIGFyZWEgZnJvbSB0aGUgc2NhbGVkIGltYWdlXG4gICAgICAgIHJlc2l6ZWQgPSBzY2FsZWRJbWFnZS5leHRyYWN0KHtcbiAgICAgICAgICBoZWlnaHQ6IHNhZmVSZXNpemVIZWlnaHQsXG4gICAgICAgICAgbGVmdDogc2FmZU9mZnNldFgsXG4gICAgICAgICAgdG9wOiBzYWZlT2Zmc2V0WSxcbiAgICAgICAgICB3aWR0aDogc2FmZVJlc2l6ZVdpZHRoLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzaXplZCA9IGltYWdlVG9SZXNpemUucmVzaXplKGltYWdlUmVzaXplQ29uZmlnKVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50b0Zvcm1hdChcbiAgICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5mb3JtYXRPcHRpb25zLmZvcm1hdCxcbiAgICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5mb3JtYXRPcHRpb25zLm9wdGlvbnMsXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnRyaW0oaW1hZ2VSZXNpemVDb25maWcudHJpbU9wdGlvbnMpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgZGF0YTogYnVmZmVyRGF0YSwgaW5mbzogYnVmZmVySW5mbyB9ID0gYXdhaXQgcmVzaXplZC50b0J1ZmZlcih7XG4gICAgICAgIHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlLFxuICAgICAgfSlcblxuICAgICAgY29uc3Qgc2FuaXRpemVkSW1hZ2UgPSBnZXRTYW5pdGl6ZWRJbWFnZURhdGEoc2F2ZWRGaWxlbmFtZSlcblxuICAgICAgaWYgKHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXMpIHtcbiAgICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplc1tpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lXSA9IGJ1ZmZlckRhdGFcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWltZUluZm8gPSBhd2FpdCBmcm9tQnVmZmVyKGJ1ZmZlckRhdGEpXG5cbiAgICAgIGNvbnN0IGltYWdlTmFtZVdpdGhEaW1lbnNpb25zID0gY3JlYXRlSW1hZ2VOYW1lKFxuICAgICAgICBzYW5pdGl6ZWRJbWFnZS5uYW1lLFxuICAgICAgICBidWZmZXJJbmZvLFxuICAgICAgICBtaW1lSW5mbz8uZXh0IHx8IHNhbml0aXplZEltYWdlLmV4dCxcbiAgICAgIClcblxuICAgICAgY29uc3QgaW1hZ2VQYXRoID0gYCR7c3RhdGljUGF0aH0vJHtpbWFnZU5hbWVXaXRoRGltZW5zaW9uc31gXG5cbiAgICAgIGlmIChhd2FpdCBmaWxlRXhpc3RzKGltYWdlUGF0aCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBmcy51bmxpbmtTeW5jKGltYWdlUGF0aClcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSWdub3JlIHVubGluayBlcnJvcnNcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGhlaWdodCwgc2l6ZSwgd2lkdGggfSA9IGJ1ZmZlckluZm9cbiAgICAgIHJldHVybiBjcmVhdGVSZXN1bHQoe1xuICAgICAgICBuYW1lOiBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lLFxuICAgICAgICBmaWxlbmFtZTogaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMsXG4gICAgICAgIGZpbGVzaXplOiBzaXplLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIG1pbWVUeXBlOiBtaW1lSW5mbz8ubWltZSB8fCBtaW1lVHlwZSxcbiAgICAgICAgc2l6ZXNUb1NhdmU6IFt7IGJ1ZmZlcjogYnVmZmVyRGF0YSwgcGF0aDogaW1hZ2VQYXRoIH1dLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pXG4gICAgfSksXG4gIClcblxuICByZXR1cm4gcmVzdWx0cy5yZWR1Y2UoKGFjYywgcmVzdWx0KSA9PiB7XG4gICAgT2JqZWN0LmFzc2lnbihhY2Muc2l6ZURhdGEsIHJlc3VsdC5zaXplRGF0YSlcbiAgICBhY2Muc2l6ZXNUb1NhdmUucHVzaCguLi5yZXN1bHQuc2l6ZXNUb1NhdmUpXG4gICAgcmV0dXJuIGFjY1xuICB9LCBkZWZhdWx0UmVzdWx0KVxufVxuIl0sIm5hbWVzIjpbInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJnZXRTYW5pdGl6ZWRJbWFnZURhdGEiLCJzb3VyY2VJbWFnZSIsImV4dGVuc2lvbiIsInNwbGl0IiwicG9wIiwibmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJleHQiLCJjcmVhdGVJbWFnZU5hbWUiLCJvdXRwdXRJbWFnZU5hbWUiLCJoZWlnaHQiLCJ3aWR0aCIsImNyZWF0ZVJlc3VsdCIsImZpbGVuYW1lIiwiZmlsZXNpemUiLCJtaW1lVHlwZSIsInNpemVzVG9TYXZlIiwic2l6ZURhdGEiLCJwcmV2ZW50UmVzaXplIiwiZGVzaXJlZEhlaWdodCIsImRlc2lyZWRXaWR0aCIsIndpdGhvdXRFbmxhcmdlbWVudCIsIndpdGhvdXRSZWR1Y3Rpb24iLCJvcmlnaW5hbCIsInVuZGVmaW5lZCIsImlzV2lkdGhPckhlaWdodE5vdERlZmluZWQiLCJoYXNJbnN1ZmZpY2llbnRXaWR0aCIsImhhc0luc3VmZmljaWVudEhlaWdodCIsImFwcGx5UGF5bG9hZEFkanVzdG1lbnRzIiwiZml0IiwiaXNOdW1iZXIiLCJ0YXJnZXRBc3BlY3RSYXRpbyIsIm9yaWdpbmFsQXNwZWN0UmF0aW8iLCJza2lwRW5sYXJnZW1lbnQiLCJza2lwUmVkdWN0aW9uIiwic2FuaXRpemVSZXNpemVDb25maWciLCJyZXNpemVDb25maWciLCJwb3NpdGlvbiIsImNvbmZpZyIsImRpbWVuc2lvbnMiLCJmaWxlIiwicmVxIiwic2F2ZWRGaWxlbmFtZSIsInN0YXRpY1BhdGgiLCJ1cGxvYWRFZGl0cyIsImZvY2FsUG9pbnQiLCJmb2NhbFBvaW50RW5hYmxlZCIsImltYWdlU2l6ZXMiLCJ1cGxvYWQiLCJpbmNvbWluZ0ZvY2FsUG9pbnQiLCJ4IiwiTWF0aCIsInJvdW5kIiwieSIsImRlZmF1bHRSZXN1bHQiLCJzaGFycEJhc2UiLCJzaGFycCIsInRlbXBGaWxlUGF0aCIsImRhdGEiLCJyb3RhdGUiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImltYWdlUmVzaXplQ29uZmlnIiwiaW1hZ2VUb1Jlc2l6ZSIsImNsb25lIiwicmVzaXplZCIsInJlc2l6ZUhlaWdodCIsInJlc2l6ZVdpZHRoIiwicmVzaXplQXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0Iiwic2NhbGVkSW1hZ2UiLCJyZXNpemUiLCJpbmZvIiwic2NhbGVkSW1hZ2VJbmZvIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsInNhZmVSZXNpemVXaWR0aCIsIm1heE9mZnNldFgiLCJsZWZ0Rm9jYWxFZGdlIiwic2FmZU9mZnNldFgiLCJtaW4iLCJtYXgiLCJzYWZlUmVzaXplSGVpZ2h0IiwibWF4T2Zmc2V0WSIsInRvcEZvY2FsRWRnZSIsInNhZmVPZmZzZXRZIiwiZXh0cmFjdCIsImxlZnQiLCJ0b3AiLCJmb3JtYXRPcHRpb25zIiwidG9Gb3JtYXQiLCJmb3JtYXQiLCJvcHRpb25zIiwidHJpbU9wdGlvbnMiLCJ0cmltIiwiYnVmZmVyRGF0YSIsImJ1ZmZlckluZm8iLCJzYW5pdGl6ZWRJbWFnZSIsInBheWxvYWRVcGxvYWRTaXplcyIsIm1pbWVJbmZvIiwiZnJvbUJ1ZmZlciIsImltYWdlTmFtZVdpdGhEaW1lbnNpb25zIiwiaW1hZ2VQYXRoIiwiZmlsZUV4aXN0cyIsImZzIiwidW5saW5rU3luYyIsInNpemUiLCJtaW1lIiwiYnVmZmVyIiwicGF0aCIsInJlZHVjZSIsImFjYyIsInJlc3VsdCIsIk9iamVjdCIsImFzc2lnbiIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7K0JBbU5BOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDRDs7O2VBQThCQTs7OzBCQTlOSDsyREFDWjt5RUFDTTs4REFDSDswQkFhTzttRUFDRjs7Ozs7O0FB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
|