@bigbinary/neeto-image-uploader-frontend 2.3.37 → 2.4.0-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +3 -1
  2. package/dist/AssetLibrary.js +4 -4
  3. package/dist/BasicImageUploader.js +2 -2
  4. package/dist/ImageForm.js +4 -4
  5. package/dist/ImageUploader.js +4 -4
  6. package/dist/cjs/AssetLibrary.js +4 -4
  7. package/dist/cjs/BasicImageUploader.js +2 -2
  8. package/dist/cjs/ImageForm.js +4 -4
  9. package/dist/cjs/ImageUploader.js +6 -6
  10. package/dist/cjs/ImageUploader.js.map +1 -1
  11. package/dist/cjs/hooks.js +3 -3
  12. package/dist/cjs/index.js +5 -5
  13. package/dist/hooks.js +3 -3
  14. package/dist/{index-1joql7CE.js → imagekit.esm-Bhjn2yWQ.js} +6 -5
  15. package/dist/imagekit.esm-Bhjn2yWQ.js.map +1 -0
  16. package/dist/{index-C7OXkHLU.js → imagekit.esm-DjCK_cT4.js} +6 -4
  17. package/dist/imagekit.esm-DjCK_cT4.js.map +1 -0
  18. package/dist/{index-DFNdUhyS.js → index-BytO1P1f.js} +11 -12
  19. package/dist/index-BytO1P1f.js.map +1 -0
  20. package/dist/{index-CAP4pWGE.js → index-DFcuyoYr.js} +6 -7
  21. package/dist/index-DFcuyoYr.js.map +1 -0
  22. package/dist/index.js +5 -5
  23. package/dist/{useImageUploader-C5QWq1sL.js → useImageUploader-BaiqsStP.js} +9 -9
  24. package/dist/useImageUploader-BaiqsStP.js.map +1 -0
  25. package/dist/{useImageUploader-C47bKpQb.js → useImageUploader-CvOKM4JN.js} +5 -5
  26. package/dist/useImageUploader-CvOKM4JN.js.map +1 -0
  27. package/dist/{useProfileImageUpload-BU9jacfM.js → useProfileImageUpload-Bs81RQCb.js} +8 -8
  28. package/dist/useProfileImageUpload-Bs81RQCb.js.map +1 -0
  29. package/dist/{useProfileImageUpload-CwqRbUAO.js → useProfileImageUpload-C0HymxXt.js} +5 -5
  30. package/dist/useProfileImageUpload-C0HymxXt.js.map +1 -0
  31. package/dist/{utils-BjNaSuOu.js → utils-DIM-cAUF.js} +5 -5
  32. package/dist/utils-DIM-cAUF.js.map +1 -0
  33. package/dist/{utils-Um4BP0zx.js → utils-pG6icHxb.js} +8 -8
  34. package/dist/utils-pG6icHxb.js.map +1 -0
  35. package/package.json +7 -7
  36. package/dist/index-1joql7CE.js.map +0 -1
  37. package/dist/index-C7OXkHLU.js.map +0 -1
  38. package/dist/index-CAP4pWGE.js.map +0 -1
  39. package/dist/index-DFNdUhyS.js.map +0 -1
  40. package/dist/useImageUploader-C47bKpQb.js.map +0 -1
  41. package/dist/useImageUploader-C5QWq1sL.js.map +0 -1
  42. package/dist/useProfileImageUpload-BU9jacfM.js.map +0 -1
  43. package/dist/useProfileImageUpload-CwqRbUAO.js.map +0 -1
  44. package/dist/utils-BjNaSuOu.js.map +0 -1
  45. package/dist/utils-Um4BP0zx.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DFNdUhyS.js","sources":["../app/javascript/src/components/utils.js","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../node_modules/react-image-crop/dist/index.js","../app/javascript/src/apis/development.js","../app/javascript/src/hooks/useDevelopmentApi.js","../app/javascript/src/components/ImageEditor/Controls.jsx","../app/javascript/src/components/ImageEditor/hooks/useImageControls.js","../app/javascript/src/components/ImageEditor/index.jsx","../app/javascript/src/apis/images.js","../app/javascript/src/hooks/useAssetsApi.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/bricks.js/dist/bricks.module.js","../node_modules/react-infinite-scroller/dist/InfiniteScroll.js","../node_modules/react-infinite-scroller/index.js","../node_modules/react-masonry-infinite/lib/index.js","../app/javascript/src/components/ImageLibrary/InfiniteScroller.jsx","../app/javascript/src/components/ImageLibrary/Images.jsx","../app/javascript/src/apis/unsplash.js","../app/javascript/src/hooks/useUnsplashApi.js","../app/javascript/src/components/ImageLibrary/Unsplash.jsx","../app/javascript/src/components/ImageLibrary/index.jsx","../app/javascript/src/components/Modal/index.jsx"],"sourcesContent":["export const constructCloudflareImageURL = url => {\n const domain = window.location.host.split(\".\").slice(-2).join(\".\");\n\n return url.replace(\n \"https://imagedelivery.net\",\n `https://images.${domain}/cdn-cgi/imagedelivery`\n );\n};\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import g, { PureComponent as E, createRef as _ } from \"react\";\nconst M = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n unit: \"px\"\n}, f = (s, t, e) => Math.min(Math.max(s, t), e), S = (...s) => s.filter((t) => t && typeof t == \"string\").join(\" \"), P = (s, t) => s === t || s.width === t.width && s.height === t.height && s.x === t.x && s.y === t.y && s.unit === t.unit;\nfunction H(s, t, e, o) {\n const i = y(s, e, o);\n return s.width && (i.height = i.width / t), s.height && (i.width = i.height * t), i.y + i.height > o && (i.height = o - i.y, i.width = i.height * t), i.x + i.width > e && (i.width = e - i.x, i.height = i.width / t), s.unit === \"%\" ? D(i, e, o) : i;\n}\nfunction N(s, t, e) {\n const o = y(s, t, e);\n return o.x = (t - o.width) / 2, o.y = (e - o.height) / 2, s.unit === \"%\" ? D(o, t, e) : o;\n}\nfunction D(s, t, e) {\n return s.unit === \"%\" ? { ...M, ...s, unit: \"%\" } : {\n unit: \"%\",\n x: s.x ? s.x / t * 100 : 0,\n y: s.y ? s.y / e * 100 : 0,\n width: s.width ? s.width / t * 100 : 0,\n height: s.height ? s.height / e * 100 : 0\n };\n}\nfunction y(s, t, e) {\n return s.unit ? s.unit === \"px\" ? { ...M, ...s, unit: \"px\" } : {\n unit: \"px\",\n x: s.x ? s.x * t / 100 : 0,\n y: s.y ? s.y * e / 100 : 0,\n width: s.width ? s.width * t / 100 : 0,\n height: s.height ? s.height * e / 100 : 0\n } : { ...M, ...s, unit: \"px\" };\n}\nfunction X(s, t, e, o, i, n = 0, a = 0, w = o, h = i) {\n const r = { ...s };\n let c = Math.min(n, o), d = Math.min(a, i), p = Math.min(w, o), l = Math.min(h, i);\n t && (t > 1 ? (c = a ? a * t : c, d = c / t, p = w * t) : (d = n ? n / t : d, c = d * t, l = h / t)), r.y < 0 && (r.height = Math.max(r.height + r.y, d), r.y = 0), r.x < 0 && (r.width = Math.max(r.width + r.x, c), r.x = 0);\n const u = o - (r.x + r.width);\n u < 0 && (r.x = Math.min(r.x, o - c), r.width += u);\n const C = i - (r.y + r.height);\n if (C < 0 && (r.y = Math.min(r.y, i - d), r.height += C), r.width < c && ((e === \"sw\" || e == \"nw\") && (r.x -= c - r.width), r.width = c), r.height < d && ((e === \"nw\" || e == \"ne\") && (r.y -= d - r.height), r.height = d), r.width > p && ((e === \"sw\" || e == \"nw\") && (r.x -= p - r.width), r.width = p), r.height > l && ((e === \"nw\" || e == \"ne\") && (r.y -= l - r.height), r.height = l), t) {\n const R = r.width / r.height;\n if (R < t) {\n const x = Math.max(r.width / t, d);\n (e === \"nw\" || e == \"ne\") && (r.y -= x - r.height), r.height = x;\n } else if (R > t) {\n const x = Math.max(r.height * t, c);\n (e === \"sw\" || e == \"nw\") && (r.x -= x - r.width), r.width = x;\n }\n }\n return r;\n}\nfunction K(s, t, e, o) {\n const i = { ...s };\n return t === \"ArrowLeft\" ? o === \"nw\" ? (i.x -= e, i.y -= e, i.width += e, i.height += e) : o === \"w\" ? (i.x -= e, i.width += e) : o === \"sw\" ? (i.x -= e, i.width += e, i.height += e) : o === \"ne\" ? (i.y += e, i.width -= e, i.height -= e) : o === \"e\" ? i.width -= e : o === \"se\" && (i.width -= e, i.height -= e) : t === \"ArrowRight\" && (o === \"nw\" ? (i.x += e, i.y += e, i.width -= e, i.height -= e) : o === \"w\" ? (i.x += e, i.width -= e) : o === \"sw\" ? (i.x += e, i.width -= e, i.height -= e) : o === \"ne\" ? (i.y -= e, i.width += e, i.height += e) : o === \"e\" ? i.width += e : o === \"se\" && (i.width += e, i.height += e)), t === \"ArrowUp\" ? o === \"nw\" ? (i.x -= e, i.y -= e, i.width += e, i.height += e) : o === \"n\" ? (i.y -= e, i.height += e) : o === \"ne\" ? (i.y -= e, i.width += e, i.height += e) : o === \"sw\" ? (i.x += e, i.width -= e, i.height -= e) : o === \"s\" ? i.height -= e : o === \"se\" && (i.width -= e, i.height -= e) : t === \"ArrowDown\" && (o === \"nw\" ? (i.x += e, i.y += e, i.width -= e, i.height -= e) : o === \"n\" ? (i.y += e, i.height -= e) : o === \"ne\" ? (i.y += e, i.width -= e, i.height -= e) : o === \"sw\" ? (i.x -= e, i.width += e, i.height += e) : o === \"s\" ? i.height += e : o === \"se\" && (i.width += e, i.height += e)), i;\n}\nconst b = { capture: !0, passive: !1 }, v = class m extends E {\n constructor() {\n super(...arguments), this.docMoveBound = !1, this.mouseDownOnCrop = !1, this.dragStarted = !1, this.evData = {\n startClientX: 0,\n startClientY: 0,\n startCropX: 0,\n startCropY: 0,\n clientX: 0,\n clientY: 0,\n isResize: !0\n }, this.componentRef = _(), this.mediaRef = _(), this.initChangeCalled = !1, this.state = {\n cropIsActive: !1,\n newCropIsBeingDrawn: !1\n }, this.onCropPointerDown = (t) => {\n const { crop: e, disabled: o } = this.props, i = this.getBox();\n if (!e)\n return;\n const n = y(e, i.width, i.height);\n if (o)\n return;\n t.cancelable && t.preventDefault(), this.bindDocMove(), this.componentRef.current.focus({ preventScroll: !0 });\n const a = t.target.dataset.ord, w = !!a;\n let h = t.clientX, r = t.clientY, c = n.x, d = n.y;\n if (a) {\n const p = t.clientX - i.x, l = t.clientY - i.y;\n let u = 0, C = 0;\n a === \"ne\" || a == \"e\" ? (u = p - (n.x + n.width), C = l - n.y, c = n.x, d = n.y + n.height) : a === \"se\" || a === \"s\" ? (u = p - (n.x + n.width), C = l - (n.y + n.height), c = n.x, d = n.y) : a === \"sw\" || a == \"w\" ? (u = p - n.x, C = l - (n.y + n.height), c = n.x + n.width, d = n.y) : (a === \"nw\" || a == \"n\") && (u = p - n.x, C = l - n.y, c = n.x + n.width, d = n.y + n.height), h = c + i.x + u, r = d + i.y + C;\n }\n this.evData = {\n startClientX: h,\n startClientY: r,\n startCropX: c,\n startCropY: d,\n clientX: t.clientX,\n clientY: t.clientY,\n isResize: w,\n ord: a\n }, this.mouseDownOnCrop = !0, this.setState({ cropIsActive: !0 });\n }, this.onComponentPointerDown = (t) => {\n const { crop: e, disabled: o, locked: i, keepSelection: n, onChange: a } = this.props, w = this.getBox();\n if (o || i || n && e)\n return;\n t.cancelable && t.preventDefault(), this.bindDocMove(), this.componentRef.current.focus({ preventScroll: !0 });\n const h = t.clientX - w.x, r = t.clientY - w.y, c = {\n unit: \"px\",\n x: h,\n y: r,\n width: 0,\n height: 0\n };\n this.evData = {\n startClientX: t.clientX,\n startClientY: t.clientY,\n startCropX: h,\n startCropY: r,\n clientX: t.clientX,\n clientY: t.clientY,\n isResize: !0\n }, this.mouseDownOnCrop = !0, a(y(c, w.width, w.height), D(c, w.width, w.height)), this.setState({ cropIsActive: !0, newCropIsBeingDrawn: !0 });\n }, this.onDocPointerMove = (t) => {\n const { crop: e, disabled: o, onChange: i, onDragStart: n } = this.props, a = this.getBox();\n if (o || !e || !this.mouseDownOnCrop)\n return;\n t.cancelable && t.preventDefault(), this.dragStarted || (this.dragStarted = !0, n && n(t));\n const { evData: w } = this;\n w.clientX = t.clientX, w.clientY = t.clientY;\n let h;\n w.isResize ? h = this.resizeCrop() : h = this.dragCrop(), P(e, h) || i(\n y(h, a.width, a.height),\n D(h, a.width, a.height)\n );\n }, this.onComponentKeyDown = (t) => {\n const { crop: e, disabled: o, onChange: i, onComplete: n } = this.props;\n if (o)\n return;\n const a = t.key;\n let w = !1;\n if (!e)\n return;\n const h = this.getBox(), r = this.makePixelCrop(h), d = (navigator.platform.match(\"Mac\") ? t.metaKey : t.ctrlKey) ? m.nudgeStepLarge : t.shiftKey ? m.nudgeStepMedium : m.nudgeStep;\n if (a === \"ArrowLeft\" ? (r.x -= d, w = !0) : a === \"ArrowRight\" ? (r.x += d, w = !0) : a === \"ArrowUp\" ? (r.y -= d, w = !0) : a === \"ArrowDown\" && (r.y += d, w = !0), w) {\n t.cancelable && t.preventDefault(), r.x = f(r.x, 0, h.width - r.width), r.y = f(r.y, 0, h.height - r.height);\n const p = y(r, h.width, h.height), l = D(r, h.width, h.height);\n i(p, l), n && n(p, l);\n }\n }, this.onHandlerKeyDown = (t, e) => {\n const {\n aspect: o = 0,\n crop: i,\n disabled: n,\n minWidth: a = 0,\n minHeight: w = 0,\n maxWidth: h,\n maxHeight: r,\n onChange: c,\n onComplete: d\n } = this.props, p = this.getBox();\n if (n || !i)\n return;\n if (t.key === \"ArrowUp\" || t.key === \"ArrowDown\" || t.key === \"ArrowLeft\" || t.key === \"ArrowRight\")\n t.stopPropagation(), t.preventDefault();\n else\n return;\n const u = (navigator.platform.match(\"Mac\") ? t.metaKey : t.ctrlKey) ? m.nudgeStepLarge : t.shiftKey ? m.nudgeStepMedium : m.nudgeStep, C = y(i, p.width, p.height), R = K(C, t.key, u, e), x = X(\n R,\n o,\n e,\n p.width,\n p.height,\n a,\n w,\n h,\n r\n );\n if (!P(i, x)) {\n const Y = D(x, p.width, p.height);\n c(x, Y), d && d(x, Y);\n }\n }, this.onDocPointerDone = (t) => {\n const { crop: e, disabled: o, onComplete: i, onDragEnd: n } = this.props, a = this.getBox();\n this.unbindDocMove(), !(o || !e) && this.mouseDownOnCrop && (this.mouseDownOnCrop = !1, this.dragStarted = !1, n && n(t), i && i(y(e, a.width, a.height), D(e, a.width, a.height)), this.setState({ cropIsActive: !1, newCropIsBeingDrawn: !1 }));\n }, this.onDragFocus = (t) => {\n var e;\n (e = this.componentRef.current) == null || e.scrollTo(0, 0);\n };\n }\n get document() {\n return document;\n }\n // We unfortunately get the bounding box every time as x+y changes\n // due to scrolling.\n getBox() {\n const t = this.mediaRef.current;\n if (!t)\n return { x: 0, y: 0, width: 0, height: 0 };\n const { x: e, y: o, width: i, height: n } = t.getBoundingClientRect();\n return { x: e, y: o, width: i, height: n };\n }\n componentDidUpdate(t) {\n const { crop: e, onComplete: o } = this.props;\n if (o && !t.crop && e) {\n const { width: i, height: n } = this.getBox();\n i && n && o(y(e, i, n), D(e, i, n));\n }\n }\n componentWillUnmount() {\n this.resizeObserver && this.resizeObserver.disconnect();\n }\n bindDocMove() {\n this.docMoveBound || (this.document.addEventListener(\"pointermove\", this.onDocPointerMove, b), this.document.addEventListener(\"pointerup\", this.onDocPointerDone, b), this.document.addEventListener(\"pointercancel\", this.onDocPointerDone, b), this.docMoveBound = !0);\n }\n unbindDocMove() {\n this.docMoveBound && (this.document.removeEventListener(\"pointermove\", this.onDocPointerMove, b), this.document.removeEventListener(\"pointerup\", this.onDocPointerDone, b), this.document.removeEventListener(\"pointercancel\", this.onDocPointerDone, b), this.docMoveBound = !1);\n }\n getCropStyle() {\n const { crop: t } = this.props;\n if (t)\n return {\n top: `${t.y}${t.unit}`,\n left: `${t.x}${t.unit}`,\n width: `${t.width}${t.unit}`,\n height: `${t.height}${t.unit}`\n };\n }\n dragCrop() {\n const { evData: t } = this, e = this.getBox(), o = this.makePixelCrop(e), i = t.clientX - t.startClientX, n = t.clientY - t.startClientY;\n return o.x = f(t.startCropX + i, 0, e.width - o.width), o.y = f(t.startCropY + n, 0, e.height - o.height), o;\n }\n getPointRegion(t, e, o, i) {\n const { evData: n } = this, a = n.clientX - t.x, w = n.clientY - t.y;\n let h;\n i && e ? h = e === \"nw\" || e === \"n\" || e === \"ne\" : h = w < n.startCropY;\n let r;\n return o && e ? r = e === \"nw\" || e === \"w\" || e === \"sw\" : r = a < n.startCropX, r ? h ? \"nw\" : \"sw\" : h ? \"ne\" : \"se\";\n }\n resolveMinDimensions(t, e, o = 0, i = 0) {\n let n = Math.min(o, t.width), a = Math.min(i, t.height);\n return !e || !n && !a ? [n, a] : e > 1 ? n ? [n, n / e] : [a * e, a] : a ? [a * e, a] : [n, n / e];\n }\n resizeCrop() {\n const { evData: t } = this, { aspect: e = 0, maxWidth: o, maxHeight: i } = this.props, n = this.getBox(), [a, w] = this.resolveMinDimensions(n, e, this.props.minWidth, this.props.minHeight);\n let h = this.makePixelCrop(n), r = this.getPointRegion(n, t.ord, a, w);\n const c = t.ord || r;\n let d = t.clientX - t.startClientX, p = t.clientY - t.startClientY;\n (a && c === \"nw\" || c === \"w\" || c === \"sw\") && (d = Math.min(d, -a)), (w && c === \"nw\" || c === \"n\" || c === \"ne\") && (p = Math.min(p, -w));\n const l = {\n unit: \"px\",\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n r === \"ne\" ? (l.x = t.startCropX, l.width = d, e ? (l.height = l.width / e, l.y = t.startCropY - l.height) : (l.height = Math.abs(p), l.y = t.startCropY - l.height)) : r === \"se\" ? (l.x = t.startCropX, l.y = t.startCropY, l.width = d, e ? l.height = l.width / e : l.height = p) : r === \"sw\" ? (l.x = t.startCropX + d, l.y = t.startCropY, l.width = Math.abs(d), e ? l.height = l.width / e : l.height = p) : r === \"nw\" && (l.x = t.startCropX + d, l.width = Math.abs(d), e ? (l.height = l.width / e, l.y = t.startCropY - l.height) : (l.height = Math.abs(p), l.y = t.startCropY + p));\n const u = X(\n l,\n e,\n r,\n n.width,\n n.height,\n a,\n w,\n o,\n i\n );\n return e || m.xyOrds.indexOf(c) > -1 ? h = u : m.xOrds.indexOf(c) > -1 ? (h.x = u.x, h.width = u.width) : m.yOrds.indexOf(c) > -1 && (h.y = u.y, h.height = u.height), h.x = f(h.x, 0, n.width - h.width), h.y = f(h.y, 0, n.height - h.height), h;\n }\n createCropSelection() {\n const {\n ariaLabels: t = m.defaultProps.ariaLabels,\n disabled: e,\n locked: o,\n renderSelectionAddon: i,\n ruleOfThirds: n,\n crop: a\n } = this.props, w = this.getCropStyle();\n if (a)\n return /* @__PURE__ */ g.createElement(\n \"div\",\n {\n style: w,\n className: \"ReactCrop__crop-selection\",\n onPointerDown: this.onCropPointerDown,\n \"aria-label\": t.cropArea,\n tabIndex: 0,\n onKeyDown: this.onComponentKeyDown,\n role: \"group\"\n },\n !e && !o && /* @__PURE__ */ g.createElement(\"div\", { className: \"ReactCrop__drag-elements\", onFocus: this.onDragFocus }, /* @__PURE__ */ g.createElement(\"div\", { className: \"ReactCrop__drag-bar ord-n\", \"data-ord\": \"n\" }), /* @__PURE__ */ g.createElement(\"div\", { className: \"ReactCrop__drag-bar ord-e\", \"data-ord\": \"e\" }), /* @__PURE__ */ g.createElement(\"div\", { className: \"ReactCrop__drag-bar ord-s\", \"data-ord\": \"s\" }), /* @__PURE__ */ g.createElement(\"div\", { className: \"ReactCrop__drag-bar ord-w\", \"data-ord\": \"w\" }), /* @__PURE__ */ g.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-nw\",\n \"data-ord\": \"nw\",\n tabIndex: 0,\n \"aria-label\": t.nwDragHandle,\n onKeyDown: (h) => this.onHandlerKeyDown(h, \"nw\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ g.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-n\",\n \"data-ord\": \"n\",\n tabIndex: 0,\n \"aria-label\": t.nDragHandle,\n onKeyDown: (h) => this.onHandlerKeyDown(h, \"n\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ g.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-ne\",\n \"data-ord\": \"ne\",\n tabIndex: 0,\n \"aria-label\": t.neDragHandle,\n onKeyDown: (h) => this.onHandlerKeyDown(h, \"ne\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ g.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-e\",\n \"data-ord\": \"e\",\n tabIndex: 0,\n \"aria-label\": t.eDragHandle,\n onKeyDown: (h) => this.onHandlerKeyDown(h, \"e\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ g.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-se\",\n \"data-ord\": \"se\",\n tabIndex: 0,\n \"aria-label\": t.seDragHandle,\n onKeyDown: (h) => this.onHandlerKeyDown(h, \"se\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ g.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-s\",\n \"data-ord\": \"s\",\n tabIndex: 0,\n \"aria-label\": t.sDragHandle,\n onKeyDown: (h) => this.onHandlerKeyDown(h, \"s\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ g.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-sw\",\n \"data-ord\": \"sw\",\n tabIndex: 0,\n \"aria-label\": t.swDragHandle,\n onKeyDown: (h) => this.onHandlerKeyDown(h, \"sw\"),\n role: \"button\"\n }\n ), /* @__PURE__ */ g.createElement(\n \"div\",\n {\n className: \"ReactCrop__drag-handle ord-w\",\n \"data-ord\": \"w\",\n tabIndex: 0,\n \"aria-label\": t.wDragHandle,\n onKeyDown: (h) => this.onHandlerKeyDown(h, \"w\"),\n role: \"button\"\n }\n )),\n i && /* @__PURE__ */ g.createElement(\"div\", { className: \"ReactCrop__selection-addon\", onMouseDown: (h) => h.stopPropagation() }, i(this.state)),\n n && /* @__PURE__ */ g.createElement(g.Fragment, null, /* @__PURE__ */ g.createElement(\"div\", { className: \"ReactCrop__rule-of-thirds-hz\" }), /* @__PURE__ */ g.createElement(\"div\", { className: \"ReactCrop__rule-of-thirds-vt\" }))\n );\n }\n makePixelCrop(t) {\n const e = { ...M, ...this.props.crop || {} };\n return y(e, t.width, t.height);\n }\n render() {\n const { aspect: t, children: e, circularCrop: o, className: i, crop: n, disabled: a, locked: w, style: h, ruleOfThirds: r } = this.props, { cropIsActive: c, newCropIsBeingDrawn: d } = this.state, p = n ? this.createCropSelection() : null, l = S(\n \"ReactCrop\",\n i,\n c && \"ReactCrop--active\",\n a && \"ReactCrop--disabled\",\n w && \"ReactCrop--locked\",\n d && \"ReactCrop--new-crop\",\n n && t && \"ReactCrop--fixed-aspect\",\n n && o && \"ReactCrop--circular-crop\",\n n && r && \"ReactCrop--rule-of-thirds\",\n !this.dragStarted && n && !n.width && !n.height && \"ReactCrop--invisible-crop\",\n o && \"ReactCrop--no-animate\"\n );\n return /* @__PURE__ */ g.createElement(\"div\", { ref: this.componentRef, className: l, style: h }, /* @__PURE__ */ g.createElement(\"div\", { ref: this.mediaRef, className: \"ReactCrop__child-wrapper\", onPointerDown: this.onComponentPointerDown }, e), p);\n }\n};\nv.xOrds = [\"e\", \"w\"];\nv.yOrds = [\"n\", \"s\"];\nv.xyOrds = [\"nw\", \"ne\", \"se\", \"sw\"];\nv.nudgeStep = 1;\nv.nudgeStepMedium = 10;\nv.nudgeStepLarge = 100;\nv.defaultProps = {\n ariaLabels: {\n cropArea: \"Use the arrow keys to move the crop selection area\",\n nwDragHandle: \"Use the arrow keys to move the north west drag handle to change the crop selection area\",\n nDragHandle: \"Use the up and down arrow keys to move the north drag handle to change the crop selection area\",\n neDragHandle: \"Use the arrow keys to move the north east drag handle to change the crop selection area\",\n eDragHandle: \"Use the up and down arrow keys to move the east drag handle to change the crop selection area\",\n seDragHandle: \"Use the arrow keys to move the south east drag handle to change the crop selection area\",\n sDragHandle: \"Use the up and down arrow keys to move the south drag handle to change the crop selection area\",\n swDragHandle: \"Use the arrow keys to move the south west drag handle to change the crop selection area\",\n wDragHandle: \"Use the up and down arrow keys to move the west drag handle to change the crop selection area\"\n }\n};\nlet I = v;\nexport {\n I as Component,\n I as ReactCrop,\n P as areCropsEqual,\n N as centerCrop,\n f as clamp,\n S as cls,\n X as containCrop,\n D as convertToPercentCrop,\n y as convertToPixelCrop,\n I as default,\n M as defaultCrop,\n H as makeAspectCrop,\n K as nudgeCrop\n};\n","import axios from \"axios\";\n\nconst cropImage = payload =>\n axios.post(\"neeto_image_uploader_engine/development/crop_image\", payload);\n\nconst developmentApi = { cropImage };\n\nexport default developmentApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport developmentApi from \"apis/development\";\n\nconst useCropImage = options =>\n useMutation({ mutationFn: developmentApi.cropImage, ...options });\n\nexport { useCropImage };\n","import { withT } from \"neetocommons/react-utils\";\nimport { withEventTargetValue } from \"neetocommons/utils\";\nimport { Button, Input, Switch, Label } from \"neetoui\";\n\nimport { isNilOrEmpty } from \"./utils\";\n\nconst Controls = withT(\n ({\n t,\n crop,\n handleSubmit,\n imageRef,\n isFullImage,\n setIsFullImage,\n hideControls = false,\n handleWidthChange,\n handleHeightChange,\n width,\n height,\n }) => (\n <div className=\"flex flex-col space-y-6 p-4 md:w-2/6\">\n {!hideControls && (\n <Switch\n checked={isFullImage}\n className=\"w-full\"\n label={t(\"neetoImageUploader.labels.selectOriginalImage\")}\n onChange={() => setIsFullImage(isFullImage => !isFullImage)}\n />\n )}\n <div className=\"flex w-full items-start gap-2\">\n <Label className=\"w-24 pt-2\">\n {t(\"neetoImageUploader.labels.width\")}\n </Label>\n <Input\n className=\"w-32 grow-0\"\n disabled={isFullImage}\n max={imageRef.current?.naturalWidth}\n type=\"number\"\n value={width}\n onChange={withEventTargetValue(handleWidthChange)}\n />\n </div>\n <div className=\"flex w-full items-start gap-2\">\n <Label className=\"w-24 pt-2\">\n {t(\"neetoImageUploader.labels.height\")}\n </Label>\n <Input\n className=\"w-32 grow-0\"\n disabled={isFullImage}\n max={imageRef.current?.naturalHeight}\n type=\"number\"\n value={height}\n onChange={withEventTargetValue(handleHeightChange)}\n />\n </div>\n <Button\n className=\"mt-6 self-start\"\n data-testid=\"neeto-image-uploader-crop-submit-button\"\n label={t(\"neetoImageUploader.labels.done\")}\n disabled={\n isNilOrEmpty(imageRef.current) &&\n (crop.width <= 0 || crop.height <= 0)\n }\n onClick={handleSubmit}\n />\n </div>\n )\n);\nexport default Controls;\n","import { useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { useFuncDebounce } from \"neetocommons/react-utils\";\nimport { mergeRight } from \"ramda\";\nimport { centerCrop, makeAspectCrop } from \"react-image-crop\";\n\nimport { DEFAULT_CROP_CONFIG } from \"components/constants\";\n\nimport {\n getAspectRatio,\n getHeightFromAspectRatio,\n getInitialCropSize,\n getPercentage,\n getPixels,\n getWidthFromAspectRatio,\n} from \"../utils\";\n\nconst useImageControls = ({ imageRef, fixedAspectRatio, defaultImageSize }) => {\n const { naturalWidth: imageWidth, naturalHeight: imageHeight } =\n imageRef.current ?? {};\n\n const [isAspectRatioLocked, setIsAspectRatioLocked] = useState(\n isPresent(fixedAspectRatio)\n );\n const [crop, setCrop] = useState(DEFAULT_CROP_CONFIG);\n const [aspectRatio, setAspectRatio] = useState(\n getAspectRatio({ fixedAspectRatio, imageSize: defaultImageSize })\n );\n const [height, setHeight] = useState(getPixels(crop.height, imageHeight));\n const [width, setWidth] = useState(getPixels(crop.width, imageWidth));\n\n const aspectRatioFactor = aspectRatio.width / aspectRatio.height;\n\n const buildCropValues = ({\n cropWidth,\n cropHeight,\n width = imageWidth,\n height = imageHeight,\n aspectRatio = aspectRatioFactor,\n }) => {\n const aspectCrop = makeAspectCrop(\n {\n unit: \"%\",\n width: getPercentage(cropWidth, width),\n height: getPercentage(cropHeight, height),\n },\n aspectRatio,\n width,\n height\n );\n\n return centerCrop(aspectCrop, width, height);\n };\n\n const onToggleAspectRatioLock = () => {\n setIsAspectRatioLocked(isAspectRatioLocked => !isAspectRatioLocked);\n };\n\n const handleWidthChange = width => {\n const adjustedWidth = Math.min(width, imageWidth);\n setWidth(adjustedWidth);\n handleWidthResize(adjustedWidth);\n };\n\n const handleHeightChange = height => {\n const adjustedHeight = Math.min(height, imageHeight);\n setHeight(adjustedHeight);\n handleHeighthResize(height);\n };\n\n const handleResize = (cropWidth, cropHeight) => {\n let aspectRatio = aspectRatioFactor;\n if (!isAspectRatioLocked) {\n const imageSize = { width: cropWidth, height: cropHeight };\n const newAspectRatio = getAspectRatio({ imageSize });\n aspectRatio = newAspectRatio.width / newAspectRatio.height;\n setAspectRatio(newAspectRatio);\n }\n\n const newCrop = buildCropValues({ cropWidth, cropHeight, aspectRatio });\n\n setCrop(newCrop);\n setWidth(cropWidth);\n setHeight(cropHeight);\n };\n\n const handleWidthResize = useFuncDebounce(width => {\n let cropWidth = Number(width);\n let cropHeight = Number(height);\n\n if (isAspectRatioLocked) {\n cropHeight = getHeightFromAspectRatio(cropWidth, aspectRatio);\n\n if (cropHeight > imageHeight) {\n cropHeight = imageHeight;\n cropWidth = getWidthFromAspectRatio(cropHeight, aspectRatio);\n }\n }\n\n handleResize(cropWidth, cropHeight);\n }, 300);\n\n const handleHeighthResize = useFuncDebounce(height => {\n let cropWidth = Number(width);\n let cropHeight = Number(height);\n\n if (isAspectRatioLocked) {\n cropWidth = getWidthFromAspectRatio(cropHeight, aspectRatio);\n\n if (cropWidth > imageWidth) {\n cropWidth = imageWidth;\n cropHeight = getHeightFromAspectRatio(cropWidth, aspectRatio);\n }\n }\n\n handleResize(cropWidth, cropHeight);\n }, 300);\n\n const handleAspectWidthChange = aspectWidth => {\n if (aspectWidth <= 0) return;\n\n let newWidth = crop.width * (aspectWidth / aspectRatio.width);\n\n let updatedAspectWidth = aspectWidth;\n\n if (newWidth > 100) {\n newWidth = 100;\n updatedAspectWidth = Math.round(\n (newWidth / crop.width) * aspectRatio.width\n );\n }\n\n const newWidthInPixels = getPixels(newWidth, imageWidth);\n\n const newCrop = buildCropValues({\n cropWidth: newWidthInPixels,\n cropHeight: height,\n aspectRatio: updatedAspectWidth / aspectRatio.height,\n });\n\n setCrop(newCrop);\n setAspectRatio(mergeRight(aspectRatio, { width: updatedAspectWidth }));\n setWidth(newWidthInPixels);\n };\n\n const handleAspectHeightChange = aspectHeight => {\n if (aspectHeight <= 0) return;\n\n let newHeight = crop.height * (aspectHeight / aspectRatio.height);\n\n let updatedAspectHeight = aspectHeight;\n\n if (newHeight > 100) {\n newHeight = 100;\n updatedAspectHeight = Math.round(\n (newHeight / crop.height) * aspectRatio.height\n );\n }\n\n const newHeightInPixels = getPixels(newHeight, imageHeight);\n\n const newCrop = buildCropValues({\n cropWidth: width,\n cropHeight: newHeightInPixels,\n aspectRatio: aspectRatio.width / updatedAspectHeight,\n });\n\n setCrop(newCrop);\n setAspectRatio(mergeRight(aspectRatio, { height: updatedAspectHeight }));\n setHeight(newHeightInPixels);\n };\n\n const handleCropChange = (pixelCrop, percentageCrop) => {\n if (!isAspectRatioLocked) {\n const aspectRatio = getAspectRatio({\n imageSize: {\n width: Math.round(pixelCrop.width),\n height: Math.round(pixelCrop.height),\n },\n });\n setAspectRatio(aspectRatio);\n }\n setHeight(getPixels(percentageCrop.height, imageHeight));\n setWidth(getPixels(percentageCrop.width, imageWidth));\n setCrop(percentageCrop);\n };\n\n const handleImageLoad = ({ target: image }) => {\n const { naturalWidth: imageWidth, naturalHeight: imageHeight } = image;\n const maxCropWidth = defaultImageSize.width ?? imageWidth;\n\n const aspectRatio = getAspectRatio({\n fixedAspectRatio,\n imageSize: { width: imageWidth, height: imageHeight },\n });\n\n const aspectRatioFactor = aspectRatio.width / aspectRatio.height;\n\n const { cropWidth, cropHeight } = getInitialCropSize({\n image,\n aspectRatioFactor,\n maxCropWidth,\n });\n\n const crop = buildCropValues({\n cropWidth,\n cropHeight,\n width: imageWidth,\n height: imageHeight,\n aspectRatio: aspectRatioFactor,\n });\n\n setAspectRatio(aspectRatio);\n setCrop(crop);\n setHeight(getPixels(crop.height, imageHeight));\n setWidth(getPixels(crop.width, imageWidth));\n };\n\n return {\n onToggleAspectRatioLock,\n handleWidthChange,\n handleHeightChange,\n handleAspectWidthChange,\n handleAspectHeightChange,\n aspectRatio,\n width,\n crop,\n height,\n handleImageLoad,\n handleCropChange,\n isAspectRatioLocked,\n };\n};\n\nexport default useImageControls;\n","import { useState, useRef } from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { LeftArrow } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport ReactCrop from \"react-image-crop\";\n\nimport { useCropImage } from \"hooks/useDevelopmentApi\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/components/react-crop.css\";\n\nimport Controls from \"./Controls\";\nimport useImageControls from \"./hooks/useImageControls\";\nimport {\n isItemsCenter,\n getCropValues,\n getImageKitCroppedURL,\n getCloudFlareCroppedURL,\n getWrapperRefStyles,\n} from \"./utils\";\n\nconst ImageEditor = ({\n image,\n handleReset,\n handleImageEditComplete = noop,\n signedId = \"\",\n fixedAspectRatio = {},\n defaultImageSize = {},\n}) => {\n const imageRef = useRef(null);\n const wrapperRef = useRef(null);\n\n const { naturalWidth: imageWidth, naturalHeight: imageHeight } =\n imageRef.current ?? {};\n\n const [isFullImage, setIsFullImage] = useState(false);\n\n const { t } = useTranslation();\n\n const { mutate: cropImage } = useCropImage();\n\n const {\n onToggleAspectRatioLock,\n handleWidthChange,\n handleHeightChange,\n handleAspectWidthChange,\n handleAspectHeightChange,\n aspectRatio,\n width,\n height,\n handleImageLoad,\n handleCropChange,\n crop,\n isAspectRatioLocked,\n } = useImageControls({ fixedAspectRatio, defaultImageSize, imageRef });\n\n const processCrop = () => {\n if (isFullImage) {\n handleImageEditComplete(image);\n\n return;\n }\n\n cropImage(\n { crop: getCropValues({ crop, imageRef }), signedId },\n { onSuccess: handleImageEditComplete }\n );\n };\n\n const handleSubmit = () => {\n if (IS_DEVELOPMENT_OR_HEROKU_ENV) {\n processCrop();\n\n return;\n }\n\n if (isFullImage) {\n handleImageEditComplete(image);\n\n return;\n }\n\n const newURL =\n globalProps.assetsUploaderService === CLOUD_FLARE\n ? getCloudFlareCroppedURL({ image, crop })\n : getImageKitCroppedURL({ crop, imageURL: image.url, imageRef });\n handleImageEditComplete(mergeRight(image, { url: newURL }));\n };\n\n return (\n <div className=\"flex h-full flex-col gap-4 px-8 py-12\">\n <Button\n className=\"self-start\"\n data-testid=\"image-editor-back-button\"\n icon={LeftArrow}\n iconPosition=\"left\"\n style=\"text\"\n onClick={handleReset}\n />\n <div className=\"flex h-full w-full flex-col gap-2 overflow-y-scroll md:flex-row md:overflow-y-auto\">\n <div\n id=\"imageEditor\"\n ref={wrapperRef}\n className={classNames(\n \"flex\",\n \"h-full w-full md:w-4/6\",\n \"justify-around\",\n \"neeto-ui-bg-gray-200\",\n \"relative\",\n {\n \"items-center\": isItemsCenter({ wrapperRef, imageRef }),\n }\n )}\n >\n <ReactCrop\n crop={isFullImage ? null : crop}\n src={image?.url}\n style={getWrapperRefStyles(wrapperRef, imageRef)}\n aspect={\n isAspectRatioLocked ? aspectRatio.width / aspectRatio.height : 0\n }\n onChange={handleCropChange}\n onComplete={handleCropChange}\n >\n <img\n alt={t(\"neetoImageUploader.common.image\")}\n data-testid=\"image-editor-uploaded-image\"\n ref={imageRef}\n src={image?.url}\n onLoad={handleImageLoad}\n />\n <Typography\n className=\"neeto-ui-typography neeto-ui-text-nano neeto-ui-bg-gray-500 absolute bottom-0 end-0 z-10\"\n style=\"nano\"\n >\n {imageWidth}x{imageHeight}\n </Typography>\n </ReactCrop>\n </div>\n <Controls\n {...{\n aspectRatio,\n crop,\n handleAspectHeightChange,\n handleAspectWidthChange,\n handleHeightChange,\n handleSubmit,\n handleWidthChange,\n height,\n imageRef,\n isAspectRatioLocked,\n isFullImage,\n onToggleAspectRatioLock,\n setIsFullImage,\n width,\n }}\n hideControls={isPresent(fixedAspectRatio)}\n />\n </div>\n </div>\n );\n};\n\nexport default ImageEditor;\n","import axios from \"axios\";\n\nconst fetch = ({ searchTerm, url, page, per }) =>\n axios.get(url, { params: { searchTerm, page, per } });\n\nconst bulkDestroy = (imageIds, url) =>\n axios.delete(url, { params: { imageIds } });\n\nconst imagesApi = { fetch, bulkDestroy };\n\nexport default imagesApi;\n","import {\n useInfiniteQuery,\n useMutation,\n useQueryClient,\n} from \"@tanstack/react-query\";\nimport { identity } from \"ramda\";\n\nimport imagesApi from \"apis/images\";\nimport { IMAGES_PER_PAGE } from \"components/constants\";\nimport { ASSETS_STALE_TIME, QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchAssets = ({ searchTerm, url, per }, options = {}) =>\n useInfiniteQuery({\n queryKey: [QUERY_KEYS.ASSETS_LIST, searchTerm],\n queryFn: ({ pageParam = 1 }) =>\n imagesApi.fetch({ searchTerm, url, page: pageParam, per }),\n getNextPageParam: (lastPage, _, lastPageParam) =>\n lastPage.length === IMAGES_PER_PAGE ? lastPageParam + 1 : null,\n select: data => {\n const results = data.pages.flatMap(identity);\n\n return { results };\n },\n initialPageParam: 1,\n staleTime: ASSETS_STALE_TIME,\n ...options,\n });\n\nconst useBulkDestroyAssets = url => {\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: imageIds => imagesApi.bulkDestroy(imageIds, url),\n onSuccess: (_, variables) => {\n queryClient.setQueriesData(\n { queryKey: [QUERY_KEYS.ASSETS_LIST] },\n old => ({\n pages: old.pages.map(page =>\n page.filter(item => !variables.includes(item.fileId || item.id))\n ),\n pageParams: old.pageParams,\n })\n );\n },\n });\n};\n\nexport { useFetchAssets, useBulkDestroyAssets };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar knot = function knot() {\n var extended = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var events = Object.create(null);\n\n function on(name, handler) {\n events[name] = events[name] || [];\n events[name].push(handler);\n return this;\n }\n\n function once(name, handler) {\n handler._once = true;\n on(name, handler);\n return this;\n }\n\n function off(name) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n handler ? events[name].splice(events[name].indexOf(handler), 1) : delete events[name];\n\n return this;\n }\n\n function emit(name) {\n var _this = this;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // cache the events, to avoid consequences of mutation\n var cache = events[name] && events[name].slice();\n\n // only fire handlers if they exist\n cache && cache.forEach(function (handler) {\n // remove handlers added with 'once'\n handler._once && off(name, handler);\n\n // set 'this' context, pass args to handlers\n handler.apply(_this, args);\n });\n\n return this;\n }\n\n return _extends({}, extended, {\n\n on: on,\n once: once,\n off: off,\n emit: emit\n });\n};\n\nvar bricks = function bricks() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // privates\n\n var persist = void 0; // packing new elements, or all elements?\n var ticking = void 0; // for debounced resize\n\n var sizeIndex = void 0;\n var sizeDetail = void 0;\n\n var columnTarget = void 0;\n var columnHeights = void 0;\n\n var nodeTop = void 0;\n var nodeLeft = void 0;\n var nodeWidth = void 0;\n var nodeHeight = void 0;\n\n var nodes = void 0;\n var nodesWidths = void 0;\n var nodesHeights = void 0;\n\n // resolve options\n\n var packed = options.packed.indexOf('data-') === 0 ? options.packed : 'data-' + options.packed;\n var sizes = options.sizes.slice().reverse();\n var position = options.position !== false;\n\n var container = options.container.nodeType ? options.container : document.querySelector(options.container);\n\n var selectors = {\n all: function all() {\n return toArray(container.children);\n },\n new: function _new() {\n return toArray(container.children).filter(function (node) {\n return !node.hasAttribute('' + packed);\n });\n }\n };\n\n // series\n\n var setup = [setSizeIndex, setSizeDetail, setColumns];\n\n var run = [setNodes, setNodesDimensions, setNodesStyles, setContainerStyles];\n\n // instance\n\n var instance = knot({\n pack: pack,\n update: update,\n resize: resize\n });\n\n return instance;\n\n // general helpers\n\n function runSeries(functions) {\n functions.forEach(function (func) {\n return func();\n });\n }\n\n // array helpers\n\n function toArray(input) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n\n return Array.prototype.slice.call(input);\n }\n\n function fillArray(length) {\n return Array.apply(null, Array(length)).map(function () {\n return 0;\n });\n }\n\n // size helpers\n\n function getSizeIndex() {\n // find index of widest matching media query\n return sizes.map(function (size) {\n return size.mq && window.matchMedia('(min-width: ' + size.mq + ')').matches;\n }).indexOf(true);\n }\n\n function setSizeIndex() {\n sizeIndex = getSizeIndex();\n }\n\n function setSizeDetail() {\n // if no media queries matched, use the base case\n sizeDetail = sizeIndex === -1 ? sizes[sizes.length - 1] : sizes[sizeIndex];\n }\n\n // column helpers\n\n function setColumns() {\n columnHeights = fillArray(sizeDetail.columns);\n }\n\n // node helpers\n\n function setNodes() {\n nodes = selectors[persist ? 'new' : 'all']();\n }\n\n function setNodesDimensions() {\n // exit if empty container\n if (nodes.length === 0) {\n return;\n }\n\n nodesWidths = nodes.map(function (element) {\n return element.clientWidth;\n });\n nodesHeights = nodes.map(function (element) {\n return element.clientHeight;\n });\n }\n\n function setNodesStyles() {\n nodes.forEach(function (element, index) {\n columnTarget = columnHeights.indexOf(Math.min.apply(Math, columnHeights));\n\n element.style.position = 'absolute';\n\n nodeTop = columnHeights[columnTarget] + 'px';\n nodeLeft = columnTarget * nodesWidths[index] + columnTarget * sizeDetail.gutter + 'px';\n\n // support positioned elements (default) or transformed elements\n if (position) {\n element.style.top = nodeTop;\n element.style.left = nodeLeft;\n } else {\n element.style.transform = 'translate3d(' + nodeLeft + ', ' + nodeTop + ', 0)';\n }\n\n element.setAttribute(packed, '');\n\n // ignore nodes with no width and/or height\n nodeWidth = nodesWidths[index];\n nodeHeight = nodesHeights[index];\n\n if (nodeWidth && nodeHeight) {\n columnHeights[columnTarget] += nodeHeight + sizeDetail.gutter;\n }\n });\n }\n\n // container helpers\n\n function setContainerStyles() {\n container.style.position = 'relative';\n container.style.width = sizeDetail.columns * nodeWidth + (sizeDetail.columns - 1) * sizeDetail.gutter + 'px';\n container.style.height = Math.max.apply(Math, columnHeights) - sizeDetail.gutter + 'px';\n }\n\n // resize helpers\n\n function resizeFrame() {\n if (!ticking) {\n window.requestAnimationFrame(resizeHandler);\n ticking = true;\n }\n }\n\n function resizeHandler() {\n if (sizeIndex !== getSizeIndex()) {\n pack();\n instance.emit('resize', sizeDetail);\n }\n\n ticking = false;\n }\n\n // API\n\n function pack() {\n persist = false;\n runSeries(setup.concat(run));\n\n return instance.emit('pack');\n }\n\n function update() {\n persist = true;\n runSeries(run);\n\n return instance.emit('update');\n }\n\n function resize() {\n var flag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n var action = flag ? 'addEventListener' : 'removeEventListener';\n\n window[action]('resize', resizeFrame);\n\n return instance;\n }\n};\n\nexport default bricks;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InfiniteScroll = function (_Component) {\n _inherits(InfiniteScroll, _Component);\n\n function InfiniteScroll(props) {\n _classCallCheck(this, InfiniteScroll);\n\n var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));\n\n _this.scrollListener = _this.scrollListener.bind(_this);\n _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);\n _this.mousewheelListener = _this.mousewheelListener.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteScroll, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.pageLoaded = this.props.pageStart;\n this.options = this.eventListenerOptions();\n this.attachScrollListener();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isReverse && this.loadMore) {\n var parentElement = this.getParentElement(this.scrollComponent);\n parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;\n this.loadMore = false;\n }\n this.attachScrollListener();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.detachScrollListener();\n this.detachMousewheelListener();\n }\n }, {\n key: 'isPassiveSupported',\n value: function isPassiveSupported() {\n var passive = false;\n\n var testOptions = {\n get passive() {\n passive = true;\n }\n };\n\n try {\n document.addEventListener('test', null, testOptions);\n document.removeEventListener('test', null, testOptions);\n } catch (e) {\n // ignore\n }\n return passive;\n }\n }, {\n key: 'eventListenerOptions',\n value: function eventListenerOptions() {\n var options = this.props.useCapture;\n\n if (this.isPassiveSupported()) {\n options = {\n useCapture: this.props.useCapture,\n passive: true\n };\n } else {\n options = {\n passive: false\n };\n }\n return options;\n }\n\n // Set a defaut loader for all your `InfiniteScroll` components\n\n }, {\n key: 'setDefaultLoader',\n value: function setDefaultLoader(loader) {\n this.defaultLoader = loader;\n }\n }, {\n key: 'detachMousewheelListener',\n value: function detachMousewheelListener() {\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = this.scrollComponent.parentNode;\n }\n\n scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'detachScrollListener',\n value: function detachScrollListener() {\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = this.getParentElement(this.scrollComponent);\n }\n\n scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'getParentElement',\n value: function getParentElement(el) {\n var scrollParent = this.props.getScrollParent && this.props.getScrollParent();\n if (scrollParent != null) {\n return scrollParent;\n }\n return el && el.parentNode;\n }\n }, {\n key: 'filterProps',\n value: function filterProps(props) {\n return props;\n }\n }, {\n key: 'attachScrollListener',\n value: function attachScrollListener() {\n var parentElement = this.getParentElement(this.scrollComponent);\n\n if (!this.props.hasMore || !parentElement) {\n return;\n }\n\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = parentElement;\n }\n\n scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n\n if (this.props.initialLoad) {\n this.scrollListener();\n }\n }\n }, {\n key: 'mousewheelListener',\n value: function mousewheelListener(e) {\n // Prevents Chrome hangups\n // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257\n if (e.deltaY === 1 && !this.isPassiveSupported()) {\n e.preventDefault();\n }\n }\n }, {\n key: 'scrollListener',\n value: function scrollListener() {\n var el = this.scrollComponent;\n var scrollEl = window;\n var parentNode = this.getParentElement(el);\n\n var offset = void 0;\n if (this.props.useWindow) {\n var doc = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;\n if (this.props.isReverse) {\n offset = scrollTop;\n } else {\n offset = this.calculateOffset(el, scrollTop);\n }\n } else if (this.props.isReverse) {\n offset = parentNode.scrollTop;\n } else {\n offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;\n }\n\n // Here we make sure the element is visible as well as checking the offset\n if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {\n this.detachScrollListener();\n this.beforeScrollHeight = parentNode.scrollHeight;\n this.beforeScrollTop = parentNode.scrollTop;\n // Call loadMore after detachScrollListener to allow for non-async loadMore functions\n if (typeof this.props.loadMore === 'function') {\n this.props.loadMore(this.pageLoaded += 1);\n this.loadMore = true;\n }\n }\n }\n }, {\n key: 'calculateOffset',\n value: function calculateOffset(el, scrollTop) {\n if (!el) {\n return 0;\n }\n\n return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);\n }\n }, {\n key: 'calculateTopPosition',\n value: function calculateTopPosition(el) {\n if (!el) {\n return 0;\n }\n return el.offsetTop + this.calculateTopPosition(el.offsetParent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var renderProps = this.filterProps(this.props);\n\n var children = renderProps.children,\n element = renderProps.element,\n hasMore = renderProps.hasMore,\n initialLoad = renderProps.initialLoad,\n isReverse = renderProps.isReverse,\n loader = renderProps.loader,\n loadMore = renderProps.loadMore,\n pageStart = renderProps.pageStart,\n ref = renderProps.ref,\n threshold = renderProps.threshold,\n useCapture = renderProps.useCapture,\n useWindow = renderProps.useWindow,\n getScrollParent = renderProps.getScrollParent,\n props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);\n\n props.ref = function (node) {\n _this2.scrollComponent = node;\n if (ref) {\n ref(node);\n }\n };\n\n var childrenArray = [children];\n if (hasMore) {\n if (loader) {\n isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);\n } else if (this.defaultLoader) {\n isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);\n }\n }\n return _react2.default.createElement(element, props, childrenArray);\n }\n }]);\n\n return InfiniteScroll;\n}(_react.Component);\n\nInfiniteScroll.propTypes = {\n children: _propTypes2.default.node.isRequired,\n element: _propTypes2.default.node,\n hasMore: _propTypes2.default.bool,\n initialLoad: _propTypes2.default.bool,\n isReverse: _propTypes2.default.bool,\n loader: _propTypes2.default.node,\n loadMore: _propTypes2.default.func.isRequired,\n pageStart: _propTypes2.default.number,\n ref: _propTypes2.default.func,\n getScrollParent: _propTypes2.default.func,\n threshold: _propTypes2.default.number,\n useCapture: _propTypes2.default.bool,\n useWindow: _propTypes2.default.bool\n};\nInfiniteScroll.defaultProps = {\n element: 'div',\n hasMore: false,\n initialLoad: true,\n pageStart: 0,\n ref: null,\n threshold: 250,\n useWindow: true,\n isReverse: false,\n useCapture: false,\n loader: null,\n getScrollParent: null\n};\nexports.default = InfiniteScroll;\nmodule.exports = exports['default'];\n","module.exports = require('./dist/InfiniteScroll')\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _class, _temp2;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _bricks = require('bricks.js');\n\nvar _bricks2 = _interopRequireDefault(_bricks);\n\nvar _reactInfiniteScroller = require('react-infinite-scroller');\n\nvar _reactInfiniteScroller2 = _interopRequireDefault(_reactInfiniteScroller);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MasonryInfiniteScroller = (_temp2 = _class = function (_Component) {\n _inherits(MasonryInfiniteScroller, _Component);\n\n function MasonryInfiniteScroller() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, MasonryInfiniteScroller);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = MasonryInfiniteScroller.__proto__ || Object.getPrototypeOf(MasonryInfiniteScroller)).call.apply(_ref, [this].concat(args))), _this), _this.setContainerRef = function (component) {\n _this.masonryContainer = component;\n }, _this.forcePack = function () {\n if (_this.masonryContainer) {\n _this.state.instance.pack();\n }\n }, _this.forceUpdate = function () {\n if (_this.masonryContainer) {\n _this.state.instance.update();\n }\n }, _this.createNewInstance = function () {\n var _this$props = _this.props,\n packed = _this$props.packed,\n sizes = _this$props.sizes,\n children = _this$props.children,\n position = _this$props.position;\n\n var instance = (0, _bricks2.default)({\n container: _this.masonryContainer,\n packed: packed,\n sizes: sizes,\n position: position\n });\n\n instance.resize(true);\n\n if (children.length > 0) {\n instance.pack();\n }\n\n _this.setState(function () {\n return { instance: instance };\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(MasonryInfiniteScroller, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.createNewInstance();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var children = this.props.children;\n var instance = this.state.instance;\n\n\n if (prevProps.children.length === 0 && children.length === 0) {\n return;\n }\n\n if (prevProps.children.length === 0 && children.length > 0) {\n return instance.pack();\n }\n\n if (prevProps.children.length !== children.length) {\n if (this.props.pack) {\n return instance.pack();\n } else {\n return instance.update();\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.state) {\n this.state.instance.resize(false);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n style = _props.style,\n pack = _props.pack,\n packed = _props.packed,\n position = _props.position,\n sizes = _props.sizes,\n props = _objectWithoutProperties(_props, ['children', 'className', 'style', 'pack', 'packed', 'position', 'sizes']);\n\n return _react2.default.createElement(\n _reactInfiniteScroller2.default,\n props,\n _react2.default.createElement(\n 'div',\n { ref: this.setContainerRef, className: className, style: style },\n children\n )\n );\n }\n }]);\n\n return MasonryInfiniteScroller;\n}(_react.Component), _class.propTypes = {\n children: _propTypes2.default.arrayOf(_propTypes2.default.element).isRequired,\n className: _propTypes2.default.string,\n initialLoad: _propTypes2.default.bool,\n pack: _propTypes2.default.bool,\n packed: _propTypes2.default.string,\n position: _propTypes2.default.bool,\n sizes: _propTypes2.default.array,\n style: _propTypes2.default.object\n}, _class.defaultProps = {\n className: '',\n initialLoad: true,\n pack: false,\n packed: 'data-packed',\n position: true,\n sizes: [{ columns: 1, gutter: 20 }, { mq: '768px', columns: 2, gutter: 20 }, { mq: '1024px', columns: 3, gutter: 20 }],\n style: {}\n}, _temp2);\nexports.default = MasonryInfiniteScroller;","import { useCallback, useState } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { hasPermission } from \"neetocommons/utils\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { VIEW_ROLES_PERMISSION } from \"neetoteam\";\nimport { Alert, Dropdown, Spinner } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\nimport MasonryInfiniteScroller from \"react-masonry-infinite\";\n\nimport { useBulkDestroyAssets } from \"hooks/useAssetsApi\";\nimport { CLOUD_FLARE } from \"src/constants\";\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/components/image-library.css\";\n\nimport {\n ASSETS_DESTROY_URL,\n INFINITE_SCROLLER_SIZES,\n INFINITE_SCROLLER_STYLE,\n TABS,\n} from \"../constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst InfiniteScroller = ({\n hasMore = false,\n loadMore = noop,\n tab,\n images,\n setSelectedImage = noop,\n handleUnsplashImageSelect = noop,\n}) => {\n const { t } = useTranslation();\n const [deleteConfirmation, setDeleteConfirmation] = useState({\n isOpen: false,\n imageIds: [],\n });\n\n const isMenuButtonEnabled = globalProps.assetsUploaderService !== CLOUD_FLARE;\n\n const { isPending, mutate: bulkDelete } =\n useBulkDestroyAssets(ASSETS_DESTROY_URL);\n\n const handleDelete = useCallback(() => {\n bulkDelete(deleteConfirmation.imageIds, {\n onSuccess: () => setDeleteConfirmation({ isOpen: false, imageIds: [] }),\n });\n }, [deleteConfirmation.imageIds]);\n\n const Loader = (\n <div className=\"flex justify-center\">\n <Spinner />\n </div>\n );\n\n return (\n <div className=\"niu-unsplash-container me-2 max-w-full overflow-x-hidden overflow-y-scroll\">\n <MasonryInfiniteScroller\n {...{ hasMore, loadMore }}\n pack\n position\n className=\"w-full\"\n loader={Loader}\n sizes={INFINITE_SCROLLER_SIZES}\n style={INFINITE_SCROLLER_STYLE}\n useWindow={false}\n >\n {images.map((image, index) => (\n <div className=\"float-start w-1/2 pb-4 pe-4 md:w-1/4\" key={image.id}>\n <div\n className=\"relative w-full\"\n style={{\n paddingBottom: `${(image.height / image.width) * 100}%`,\n }}\n >\n <div\n className=\"neeto-ui-rounded-sm neeto-ui-bg-gray-100 group absolute h-full w-full\"\n data-testid=\"library-image-card\"\n id={`unsplashImage${image.id}`}\n >\n {tab === TABS[2].key && (\n <>\n <img\n data-testid={`niu-unsplash-image-${index}`}\n src={image?.urls?.regular}\n onClick={() => handleUnsplashImageSelect(image)}\n />\n <a\n className=\"neeto-ui-text-gray-100 absolute bottom-2 start-2 m-auto text-xs underline opacity-0 group-hover:opacity-100\"\n href={`https://unsplash.com/@${image?.user?.username}`}\n rel=\"noreferrer\"\n target=\"_blank\"\n >\n {image?.user?.name}\n {\" | \"} {t(\"neetoImageUploader.labels.unsplash\")}\n </a>\n </>\n )}\n {tab === TABS[1].key && (\n <>\n {hasPermission(VIEW_ROLES_PERMISSION) &&\n isMenuButtonEnabled && (\n <Dropdown\n buttonSize=\"small\"\n buttonStyle=\"tertiary\"\n data-testid={`image-library-image-options-${index}`}\n icon={MenuHorizontal}\n buttonProps={{\n className:\n // eslint-disable-next-line @bigbinary/neeto/use-neetoui-classes\n \"absolute end-2 top-2 z-1 rounded-full\",\n }}\n >\n <Menu>\n <MenuItem.Button\n data-testid=\"image-library-image-delete\"\n onClick={() =>\n setDeleteConfirmation({\n isOpen: true,\n imageIds: [image?.fileId || image.id],\n })\n }\n >\n {t(\n \"neetoImageUploader.deleteConfirmation.delete\"\n )}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n )}\n <img\n data-testid={`niu-library-image-${index}`}\n src={image?.url}\n onClick={() => setSelectedImage(image)}\n />\n </>\n )}\n </div>\n </div>\n </div>\n ))}\n </MasonryInfiniteScroller>\n <Alert\n isOpen={deleteConfirmation.isOpen}\n isSubmitting={isPending}\n message={t(\"neetoImageUploader.deleteConfirmation.message\")}\n submitButtonLabel={t(\"neetoImageUploader.deleteConfirmation.delete\")}\n title={t(\"neetoImageUploader.deleteConfirmation.title\")}\n onClose={() => setDeleteConfirmation({ isOpen: false, imageIds: [] })}\n onSubmit={handleDelete}\n />\n </div>\n );\n};\n\nexport default InfiniteScroller;\n","import { Spinner, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchAssets } from \"hooks/useAssetsApi\";\n\nimport InfiniteScroller from \"./InfiniteScroller\";\n\nimport { ASSETS_FETCH_URL, IMAGES_PER_PAGE, TABS } from \"../constants\";\n\nconst Images = ({ debouncedQuery, setSelectedImage }) => {\n const { t } = useTranslation();\n\n const {\n fetchNextPage,\n hasNextPage,\n data: { results = [] } = {},\n isLoading,\n isError,\n } = useFetchAssets({\n searchTerm: debouncedQuery,\n per: IMAGES_PER_PAGE,\n url: ASSETS_FETCH_URL,\n });\n\n if (isError) {\n return (\n <Typography className=\"mt-9 flex justify-center\" style=\"body2\">\n {t(\"neetoImageUploader.unsplash.errorMessage\")}\n </Typography>\n );\n }\n\n if (isLoading) {\n return (\n <div className=\"flex justify-around\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <InfiniteScroller\n {...{ setSelectedImage }}\n hasMore={hasNextPage}\n images={results}\n key={debouncedQuery}\n loadMore={fetchNextPage}\n tab={TABS[1].key}\n />\n );\n};\n\nexport default Images;\n","import axios from \"axios\";\n\nconst newAxiosInstance = axios.create();\n\nconst searchUnsplashImages = ({ pageNo, query }) =>\n axios.get(\"neeto_image_uploader_engine/unsplash/fetch\", {\n params: { page: pageNo, per_page: 30, query: query || \"latest\" },\n });\n\nconst getUnsplashImage = (url, config = {}) =>\n newAxiosInstance.get(url, config);\n\nconst unsplashApi = { searchUnsplashImages, getUnsplashImage };\n\nexport default unsplashApi;\n","import { keepPreviousData, useInfiniteQuery } from \"@tanstack/react-query\";\nimport { prop } from \"ramda\";\n\nimport unsplashApi from \"apis/unsplash\";\nimport { UNSPLASH_STALE_TIME, QUERY_KEYS } from \"src/constants/query\";\n\nconst { UNSPLASH_LIST } = QUERY_KEYS;\n\nconst useFetchUnsplashImages = ({ query }, options = {}) =>\n useInfiniteQuery({\n queryKey: [UNSPLASH_LIST, { query }],\n queryFn: ({ pageParam = 1 }) =>\n unsplashApi.searchUnsplashImages({ pageNo: pageParam, query }),\n initialPageParam: 1,\n getNextPageParam: (lastPage, _, lastPageParam) =>\n lastPageParam < lastPage.totalPages ? lastPageParam + 1 : null,\n select: data => {\n const results = data.pages.flatMap(prop(\"results\"));\n\n return { results };\n },\n staleTime: UNSPLASH_STALE_TIME,\n placeholderData: keepPreviousData,\n ...options,\n });\n\nexport { useFetchUnsplashImages };\n","import { Spinner, Toastr, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport unsplashApi from \"apis/unsplash\";\nimport useImageUploader from \"hooks/useImageUploader\";\nimport { useFetchUnsplashImages } from \"hooks/useUnsplashApi\";\n\nimport InfiniteScroller from \"./InfiniteScroller\";\n\nimport {\n TABS,\n UNSPLASH_DEFAULT_NAME,\n UNSPLASH_DEFAULT_REQUEST_CONFIG,\n} from \"../constants\";\n\nconst UnsplashLibrary = ({\n debouncedQuery,\n setSelectedImage,\n setIsUploading,\n setActiveTab,\n}) => {\n const { uploadFile } = useImageUploader({\n onUploadComplete: setSelectedImage,\n setIsUploading,\n });\n\n const handleUnsplashImageSelect = async image => {\n try {\n setIsUploading(true);\n const response = await unsplashApi.getUnsplashImage(\n image.urls?.regular,\n UNSPLASH_DEFAULT_REQUEST_CONFIG\n );\n\n const file = new File([response.data], UNSPLASH_DEFAULT_NAME, {\n type: response.data.type,\n });\n\n uploadFile(file);\n } catch (error) {\n Toastr.error(error);\n setActiveTab(TABS[1].key);\n setIsUploading(false);\n }\n };\n\n const { t } = useTranslation();\n\n const {\n fetchNextPage,\n hasNextPage,\n data: { results = [] } = {},\n isError,\n isLoading,\n } = useFetchUnsplashImages({ query: debouncedQuery });\n\n if (isError) {\n return (\n <Typography className=\"mt-9 flex justify-center\" style=\"body2\">\n {t(\"neetoImageUploader.unsplash.errorMessage\")}\n </Typography>\n );\n }\n\n if (isLoading) {\n return (\n <div className=\"flex justify-around\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <InfiniteScroller\n {...{ debouncedQuery, handleUnsplashImageSelect }}\n hasMore={hasNextPage}\n images={results}\n key={debouncedQuery}\n loadMore={fetchNextPage}\n tab={TABS[2].key}\n />\n );\n};\n\nexport default UnsplashLibrary;\n","import { useEffect, useState } from \"react\";\n\nimport { useDebounce } from \"neetocommons/react-utils\";\nimport { Input } from \"neetoui\";\nimport { equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Images from \"./Images\";\nimport Unsplash from \"./Unsplash\";\n\nimport { TABS } from \"../constants\";\n\nconst ImageLibrary = ({\n setSelectedImage,\n tab,\n setIsUploading,\n setActiveTab,\n}) => {\n const [query, setQuery] = useState(\"\");\n\n const { t } = useTranslation();\n\n const debouncedQuery = useDebounce(query, 400);\n\n const inputPlaceHolder = equals(tab, TABS[2].key)\n ? t(\"neetoImageUploader.placeholders.searchImageFromWeb\")\n : t(\"neetoImageUploader.placeholders.searchImage\");\n\n useEffect(() => {\n setQuery(\"\");\n }, [tab]);\n\n return (\n <div className=\"w-full px-6 pb-2 pt-1\">\n <Input\n autoFocus\n className=\"mb-4\"\n data-testid=\"niu-unsplash-image-picker-search-input\"\n name=\"text\"\n placeholder={inputPlaceHolder}\n value={query}\n onChange={({ target: { value } }) => setQuery(value)}\n />\n {tab === TABS[1].key ? (\n <Images {...{ debouncedQuery, query, setSelectedImage }} />\n ) : (\n <Unsplash\n {...{\n debouncedQuery,\n query,\n setActiveTab,\n setIsUploading,\n setSelectedImage,\n }}\n />\n )}\n </div>\n );\n};\n\nexport default ImageLibrary;\n","import { useEffect, useState } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport {\n Modal as NeetoUIModal,\n Tab,\n Spinner,\n Toastr,\n Typography,\n} from \"neetoui\";\nimport { equals, mergeRight } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport ImageDirectUpload from \"components/common/ImageDirectUpload\";\nimport { DEFAULT_UPLOAD_CONFIG } from \"components/ImageUploader/constants\";\nimport { constructCloudflareImageURL } from \"components/utils\";\nimport { useCreateBlob } from \"hooks/useDirectUploads\";\nimport useImageUploader from \"hooks/useImageUploader\";\nimport useUploadDropzone from \"hooks/useUploadDropzone\";\nimport { generateASCIIFileName, isGif } from \"hooks/utils\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/components/modal.css\";\n\nimport { TABS, UNSPLASH_URL } from \"../constants\";\nimport ImageEditor from \"../ImageEditor\";\nimport { isNilOrEmpty } from \"../ImageEditor/utils\";\nimport ImageLibrary from \"../ImageLibrary\";\n\nconst Modal = ({\n isOpen,\n onClose = noop,\n onUploadComplete = noop,\n uploadConfig = {},\n fixedAspectRatio = {},\n defaultImageSize = {},\n}) => {\n const [activeTab, setActiveTab] = useState(TABS[0].key);\n const [selectedImage, setSelectedImage] = useState({});\n const [isUploading, setIsUploading] = useState(false);\n\n const { t } = useTranslation();\n\n const { mutate: createBlob } = useCreateBlob();\n\n const uploadConfigWithDefaults = mergeRight(\n DEFAULT_UPLOAD_CONFIG,\n uploadConfig\n );\n\n const isCloudFlareImageUploader =\n globalProps.assetsUploaderService === CLOUD_FLARE;\n\n const handleCloseModal = () => {\n onClose();\n setSelectedImage({});\n };\n\n const handleImageEditComplete = editedImage => {\n handleCreateBlob(editedImage, true);\n handleCloseModal();\n };\n\n const handleUploadComplete = image => {\n if (isGif(image)) {\n handleCreateBlob(image);\n handleCloseModal();\n\n return;\n }\n\n isCloudFlareImageUploader && handleCreateBlob(image);\n setSelectedImage(image);\n };\n\n const handleCreateBlob = (editedImage, isCropped = false) => {\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(editedImage)) {\n onUploadComplete({\n url: editedImage.url,\n signedId: editedImage.signedId,\n });\n } else {\n const imageKitPayload = () => ({\n filename: generateASCIIFileName(editedImage.name),\n byte_size: editedImage.size,\n content_type: editedImage.fileType,\n checksum: editedImage.fileId,\n metadata: editedImage,\n service_name: \"imagekitio\",\n });\n\n const cloudFlarePayload = () => ({\n filename: generateASCIIFileName(editedImage.filename),\n content_type: editedImage.contentType,\n byte_size: editedImage.byteSize,\n checksum: editedImage.checksum,\n metadata: {\n ...editedImage.metadata,\n url: constructCloudflareImageURL(editedImage.url),\n isCropped,\n },\n service_name: \"cloudflare_image\",\n });\n\n const payload = isCloudFlareImageUploader\n ? cloudFlarePayload()\n : imageKitPayload();\n\n createBlob(payload, {\n onSuccess: image => {\n onUploadComplete({\n url: image.blobUrl,\n signedId: image.signedId,\n });\n },\n onError: Toastr.error,\n });\n }\n };\n\n const { uploadFile } = useImageUploader({\n onUploadComplete: handleUploadComplete,\n setIsUploading,\n });\n\n const { getRootProps, getInputProps, isDragActive } = useUploadDropzone({\n uploadConfig: uploadConfigWithDefaults,\n onDrop: uploadFile,\n });\n\n useEffect(() => {\n setActiveTab(TABS[0].key);\n }, [isOpen]);\n\n const renderContent = () => {\n if (activeTab === \"upload\") {\n return (\n <div className=\"grow px-6 pb-6\">\n <div className=\"h-full w-full overflow-y-auto\">\n <ImageDirectUpload\n uploadConfig={uploadConfigWithDefaults}\n onDrop={uploadFile}\n />\n </div>\n </div>\n );\n }\n\n return (\n <ImageLibrary\n {...{ setActiveTab, setIsUploading, setSelectedImage }}\n tab={activeTab}\n />\n );\n };\n\n return (\n <NeetoUIModal\n {...{ isOpen }}\n className=\"niu-modal\"\n size=\"large\"\n onClose={handleCloseModal}\n >\n {isUploading && (\n <div className=\"neeto-ui-bg-gray-400 absolute inset-0 z-50 flex h-full items-center justify-center opacity-50\">\n <Spinner />\n </div>\n )}\n {isNilOrEmpty(selectedImage) && isDragActive && (\n <div\n className=\"neeto-ui-rounded-xl neeto-ui-bg-gray-400 absolute flex h-full w-full flex-col items-center justify-around border-4 border-dashed border-gray-900 opacity-40\"\n {...getRootProps()}\n >\n <Typography>{t(\"neetoImageUploader.common.dropHere\")}</Typography>\n </div>\n )}\n {!isNilOrEmpty(selectedImage) ? (\n <ImageEditor\n {...{ defaultImageSize, fixedAspectRatio, handleImageEditComplete }}\n handleReset={() => setSelectedImage({})}\n image={selectedImage}\n signedId={selectedImage?.signedId}\n />\n ) : (\n <div\n className=\"flex h-full flex-col\"\n {...getRootProps({\n onClick: event => event.stopPropagation(),\n })}\n >\n <NeetoUIModal.Header>\n <Typography style=\"h2\">\n {t(\"neetoImageUploader.common.imageLibrary\")}\n </Typography>\n </NeetoUIModal.Header>\n <div className=\"flex gap-2 px-6 py-2\">\n <Tab size=\"small\">\n {TABS.map(tab => (\n <Tab.Item\n active={activeTab === tab.key}\n data-testid={tab.dataTestid}\n key={tab.key}\n onClick={() => setActiveTab(tab.key)}\n >\n {tab.label}\n </Tab.Item>\n ))}\n </Tab>\n </div>\n {renderContent()}\n {equals(activeTab, TABS[2].key) && (\n <NeetoUIModal.Footer className=\"flex items-center justify-center gap-2\">\n <Typography style=\"body2\">\n <Trans\n i18nKey=\"neetoImageUploader.unsplash.poweredByUnsplash\"\n components={{\n a: (\n <a href={UNSPLASH_URL} rel=\"noreferrer\" target=\"_blank\" />\n ),\n }}\n />\n </Typography>\n </NeetoUIModal.Footer>\n )}\n </div>\n )}\n <input {...getInputProps()} />\n </NeetoUIModal>\n );\n};\n\nexport default Modal;\n"],"names":["constructCloudflareImageURL","url","domain","window","location","host","split","slice","join","replace","concat","E","_","cropImage","payload","axios","post","developmentApi","useCropImage","options","useMutation","_objectSpread","mutationFn","Controls","withT","_ref","_imageRef$current","_imageRef$current2","t","crop","handleSubmit","imageRef","isFullImage","setIsFullImage","_ref$hideControls","hideControls","handleWidthChange","handleHeightChange","width","height","_jsxs","className","children","_jsx","Switch","checked","label","onChange","Label","Input","disabled","max","current","naturalWidth","type","value","withEventTargetValue","naturalHeight","Button","isNilOrEmpty","onClick","useImageControls","fixedAspectRatio","defaultImageSize","_ref2","imageWidth","imageHeight","_useState","useState","isPresent","_useState2","_slicedToArray","isAspectRatioLocked","setIsAspectRatioLocked","_useState3","DEFAULT_CROP_CONFIG","_useState4","setCrop","_useState5","getAspectRatio","imageSize","_useState6","aspectRatio","setAspectRatio","_useState7","getPixels","_useState8","setHeight","_useState9","_useState10","setWidth","aspectRatioFactor","buildCropValues","_ref3","cropWidth","cropHeight","_ref3$width","_ref3$height","_ref3$aspectRatio","aspectCrop","makeAspectCrop","unit","getPercentage","centerCrop","onToggleAspectRatioLock","adjustedWidth","Math","min","handleWidthResize","adjustedHeight","handleHeighthResize","handleResize","newAspectRatio","newCrop","useFuncDebounce","Number","getHeightFromAspectRatio","getWidthFromAspectRatio","handleAspectWidthChange","aspectWidth","newWidth","updatedAspectWidth","round","newWidthInPixels","mergeRight","handleAspectHeightChange","aspectHeight","newHeight","updatedAspectHeight","newHeightInPixels","handleCropChange","pixelCrop","percentageCrop","handleImageLoad","_ref4","_defaultImageSize$wid","image","target","maxCropWidth","_getInitialCropSize","getInitialCropSize","ImageEditor","handleReset","_ref$handleImageEditC","handleImageEditComplete","noop","_ref$signedId","signedId","_ref$fixedAspectRatio","_ref$defaultImageSize","useRef","wrapperRef","_useTranslation","useTranslation","_useCropImage","mutate","_useImageControls","processCrop","getCropValues","onSuccess","IS_DEVELOPMENT_OR_HEROKU_ENV","newURL","globalProps","assetsUploaderService","CLOUD_FLARE","getCloudFlareCroppedURL","getImageKitCroppedURL","imageURL","icon","LeftArrow","iconPosition","style","id","ref","classNames","isItemsCenter","ReactCrop","src","getWrapperRefStyles","aspect","onComplete","alt","onLoad","Typography","fetch","searchTerm","page","per","get","params","bulkDestroy","imageIds","imagesApi","useFetchAssets","arguments","length","undefined","useInfiniteQuery","queryKey","QUERY_KEYS","ASSETS_LIST","queryFn","_ref2$pageParam","pageParam","getNextPageParam","lastPage","lastPageParam","IMAGES_PER_PAGE","select","data","results","pages","flatMap","identity","initialPageParam","staleTime","ASSETS_STALE_TIME","useBulkDestroyAssets","queryClient","useQueryClient","variables","setQueriesData","old","map","filter","item","includes","fileId","pageParams","ReactPropTypesSecret","require$$0","propTypesModule","require$$1","require$$3","Menu","Dropdown","MenuItem","InfiniteScroller","_ref$hasMore","hasMore","_ref$loadMore","loadMore","tab","images","_ref$setSelectedImage","setSelectedImage","_ref$handleUnsplashIm","handleUnsplashImageSelect","isOpen","deleteConfirmation","setDeleteConfirmation","isMenuButtonEnabled","_useBulkDestroyAssets","ASSETS_DESTROY_URL","isPending","bulkDelete","handleDelete","useCallback","Loader","Spinner","MasonryInfiniteScroller","pack","position","loader","sizes","INFINITE_SCROLLER_SIZES","INFINITE_SCROLLER_STYLE","useWindow","index","_image$urls","_image$user","_image$user2","paddingBottom","TABS","key","_Fragment","urls","regular","href","user","username","rel","name","hasPermission","VIEW_ROLES_PERMISSION","buttonSize","buttonStyle","MenuHorizontal","buttonProps","Alert","isSubmitting","message","submitButtonLabel","title","onClose","onSubmit","Images","debouncedQuery","_useFetchAssets","ASSETS_FETCH_URL","fetchNextPage","hasNextPage","_useFetchAssets$data","_useFetchAssets$data2","_useFetchAssets$data3","isLoading","isError","_createElement","newAxiosInstance","create","searchUnsplashImages","pageNo","query","per_page","getUnsplashImage","config","unsplashApi","UNSPLASH_LIST","useFetchUnsplashImages","totalPages","prop","UNSPLASH_STALE_TIME","placeholderData","keepPreviousData","UnsplashLibrary","setIsUploading","setActiveTab","_useImageUploader","useImageUploader","onUploadComplete","uploadFile","_asyncToGenerator","_regeneratorRuntime","mark","_callee","response","file","wrap","_callee$","_context","prev","next","UNSPLASH_DEFAULT_REQUEST_CONFIG","sent","File","UNSPLASH_DEFAULT_NAME","t0","Toastr","error","stop","_x","apply","_useFetchUnsplashImag","_useFetchUnsplashImag2","_useFetchUnsplashImag3","_useFetchUnsplashImag4","ImageLibrary","setQuery","useDebounce","inputPlaceHolder","equals","useEffect","autoFocus","placeholder","Unsplash","Modal","_ref$onClose","_ref$onUploadComplete","_ref$uploadConfig","uploadConfig","activeTab","selectedImage","isUploading","_useCreateBlob","useCreateBlob","createBlob","uploadConfigWithDefaults","DEFAULT_UPLOAD_CONFIG","isCloudFlareImageUploader","handleCloseModal","editedImage","handleCreateBlob","handleUploadComplete","isGif","isCropped","imageKitPayload","filename","generateASCIIFileName","byte_size","size","content_type","fileType","checksum","metadata","service_name","cloudFlarePayload","contentType","byteSize","blobUrl","onError","_useUploadDropzone","useUploadDropzone","onDrop","getRootProps","getInputProps","isDragActive","renderContent","ImageDirectUpload","NeetoUIModal","event","stopPropagation","Header","Tab","Item","active","dataTestid","Footer","Trans","i18nKey","components","a","UNSPLASH_URL"],"mappings":"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,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,WAAW,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7tC;AACA,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,SAASS,eAAC,CAAC;AAC9D,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG;AACjH,MAAM,YAAY,EAAE,CAAC;AACrB,MAAM,YAAY,EAAE,CAAC;AACrB,MAAM,UAAU,EAAE,CAAC;AACnB,MAAM,UAAU,EAAE,CAAC;AACnB,MAAM,OAAO,EAAE,CAAC;AAChB,MAAM,OAAO,EAAE,CAAC;AAChB,MAAM,QAAQ,EAAE,CAAC;AACjB,KAAK,EAAE,IAAI,CAAC,YAAY,GAAGC,WAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,GAAGA,WAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG;AAC9F,MAAM,YAAY,EAAE,CAAC,CAAC;AACtB,MAAM,mBAAmB,EAAE,CAAC;AAC5B,KAAK,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,KAAK;AACvC,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACpE,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ;AACR,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACvC,MAAM,IAAI,CAAC;AACX,QAAQ;AACR,MAAM,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC;AACpH,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,MAAM,IAAI,CAAC,EAAE;AACb,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AACxB,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACva;AACA,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,QAAQ,YAAY,EAAE,CAAC;AACvB,QAAQ,YAAY,EAAE,CAAC;AACvB,QAAQ,UAAU,EAAE,CAAC;AACrB,QAAQ,UAAU,EAAE,CAAC;AACrB,QAAQ,OAAO,EAAE,CAAC,CAAC,OAAO;AAC1B,QAAQ,OAAO,EAAE,CAAC,CAAC,OAAO;AAC1B,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,GAAG,EAAE;AACb,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC;AACvE,KAAK,EAAE,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC,KAAK;AAC5C,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AAC9G,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,QAAQ;AACR,MAAM,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC;AACpH,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;AAC1D,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,CAAC,EAAE,CAAC;AACZ,QAAQ,CAAC,EAAE,CAAC;AACZ,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,MAAM,EAAE;AAChB,OAAO;AACP,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,QAAQ,YAAY,EAAE,CAAC,CAAC,OAAO;AAC/B,QAAQ,YAAY,EAAE,CAAC,CAAC,OAAO;AAC/B,QAAQ,UAAU,EAAE,CAAC;AACrB,QAAQ,UAAU,EAAE,CAAC;AACrB,QAAQ,OAAO,EAAE,CAAC,CAAC,OAAO;AAC1B,QAAQ,OAAO,EAAE,CAAC,CAAC,OAAO;AAC1B,QAAQ,QAAQ,EAAE,CAAC;AACnB,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC;AACrJ,KAAK,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,KAAK;AACtC,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACjG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe;AAC1C,QAAQ;AACR,MAAM,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,MAAM,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI;AAChC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;AAClD,MAAM,IAAI,CAAC;AACX,MAAM,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;AAC5E,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AAC/B,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM;AAC9B,OAAO;AACP,KAAK,EAAE,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,KAAK;AACxC,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK;AAC7E,MAAM,IAAI,CAAC;AACX,QAAQ;AACR,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG;AACrB,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,IAAI,CAAC,CAAC;AACZ,QAAQ;AACR,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,SAAS;AACzL,MAAM,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAChL,QAAQ,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACpH,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACtE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B;AACA,KAAK,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AACzC,MAAM,MAAM;AACZ,QAAQ,MAAM,EAAE,CAAC,GAAG,CAAC;AACrB,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,QAAQ,EAAE,CAAC,GAAG,CAAC;AACvB,QAAQ,SAAS,EAAE,CAAC,GAAG,CAAC;AACxB,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,SAAS,EAAE,CAAC;AACpB,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,UAAU,EAAE;AACpB,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,QAAQ;AACR,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY;AACzG,QAAQ,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,cAAc,EAAE;AAC/C;AACA,QAAQ;AACR,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AACtM,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC,CAAC,KAAK;AACf,QAAQ,CAAC,CAAC,MAAM;AAChB,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ,CAAC;AACT,QAAQ;AACR,OAAO;AACP,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACpB,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACzC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B;AACA,KAAK,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,KAAK;AACtC,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACjG,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACvP,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK;AACjC,MAAM,IAAI,CAAC;AACX,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,KAAK;AACL;AACA,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,QAAQ;AACnB;AACA;AACA;AACA,EAAE,MAAM,GAAG;AACX,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO;AACnC,IAAI,IAAI,CAAC,CAAC;AACV,MAAM,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AAChD,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,qBAAqB,EAAE;AACzE,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AAC9C;AACA,EAAE,kBAAkB,CAAC,CAAC,EAAE;AACxB,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK;AACjD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;AAC3B,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;AACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC;AACA;AACA,EAAE,oBAAoB,GAAG;AACzB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;AAC3D;AACA,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AAC5Q;AACA,EAAE,aAAa,GAAG;AAClB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AACrR;AACA,EAAE,YAAY,GAAG;AACjB,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK;AAClC,IAAI,IAAI,CAAC;AACT,MAAM,OAAO;AACb,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAQ,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACpC,QAAQ,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;AACrC,OAAO;AACP;AACA,EAAE,QAAQ,GAAG;AACb,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY;AAC5I,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAChH;AACA,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AACxE,IAAI,IAAI,CAAC;AACT,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU;AAC7E,IAAI,IAAI,CAAC;AACT,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;AAC3H;AACA,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;AAC3C,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;AAC3D,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACtG;AACA,EAAE,UAAU,GAAG;AACf,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AACjM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1E,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY;AACtE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChJ,IAAI,MAAM,CAAC,GAAG;AACd,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,CAAC,EAAE,CAAC;AACV,MAAM,CAAC,EAAE,CAAC;AACV,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,MAAM,EAAE;AACd,KAAK;AACL,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACvkB,IAAI,MAAM,CAAC,GAAG,CAAC;AACf,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,CAAC,KAAK;AACb,MAAM,CAAC,CAAC,MAAM;AACd,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM;AACN,KAAK;AACL,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AACtP;AACA,EAAE,mBAAmB,GAAG;AACxB,IAAI,MAAM;AACV,MAAM,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,UAAU;AAC/C,MAAM,QAAQ,EAAE,CAAC;AACjB,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,oBAAoB,EAAE,CAAC;AAC7B,MAAM,YAAY,EAAE,CAAC;AACrB,MAAM,IAAI,EAAE;AACZ,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE;AAC3C,IAAI,IAAI,CAAC;AACT,MAAM,uBAAuB,CAAC,CAAC,aAAa;AAC5C,QAAQ,KAAK;AACb,QAAQ;AACR,UAAU,KAAK,EAAE,CAAC;AAClB,UAAU,SAAS,EAAE,2BAA2B;AAChD,UAAU,aAAa,EAAE,IAAI,CAAC,iBAAiB;AAC/C,UAAU,YAAY,EAAE,CAAC,CAAC,QAAQ;AAClC,UAAU,QAAQ,EAAE,CAAC;AACrB,UAAU,SAAS,EAAE,IAAI,CAAC,kBAAkB;AAC5C,UAAU,IAAI,EAAE;AAChB,SAAS;AACT,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,aAAa;AACpjB,UAAU,KAAK;AACf,UAAU;AACV,YAAY,SAAS,EAAE,+BAA+B;AACtD,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,YAAY,EAAE,CAAC,CAAC,YAAY;AACxC,YAAY,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC;AAC5D,YAAY,IAAI,EAAE;AAClB;AACA,SAAS,kBAAkB,CAAC,CAAC,aAAa;AAC1C,UAAU,KAAK;AACf,UAAU;AACV,YAAY,SAAS,EAAE,8BAA8B;AACrD,YAAY,UAAU,EAAE,GAAG;AAC3B,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,YAAY,EAAE,CAAC,CAAC,WAAW;AACvC,YAAY,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3D,YAAY,IAAI,EAAE;AAClB;AACA,SAAS,kBAAkB,CAAC,CAAC,aAAa;AAC1C,UAAU,KAAK;AACf,UAAU;AACV,YAAY,SAAS,EAAE,+BAA+B;AACtD,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,YAAY,EAAE,CAAC,CAAC,YAAY;AACxC,YAAY,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC;AAC5D,YAAY,IAAI,EAAE;AAClB;AACA,SAAS,kBAAkB,CAAC,CAAC,aAAa;AAC1C,UAAU,KAAK;AACf,UAAU;AACV,YAAY,SAAS,EAAE,8BAA8B;AACrD,YAAY,UAAU,EAAE,GAAG;AAC3B,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,YAAY,EAAE,CAAC,CAAC,WAAW;AACvC,YAAY,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3D,YAAY,IAAI,EAAE;AAClB;AACA,SAAS,kBAAkB,CAAC,CAAC,aAAa;AAC1C,UAAU,KAAK;AACf,UAAU;AACV,YAAY,SAAS,EAAE,+BAA+B;AACtD,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,YAAY,EAAE,CAAC,CAAC,YAAY;AACxC,YAAY,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC;AAC5D,YAAY,IAAI,EAAE;AAClB;AACA,SAAS,kBAAkB,CAAC,CAAC,aAAa;AAC1C,UAAU,KAAK;AACf,UAAU;AACV,YAAY,SAAS,EAAE,8BAA8B;AACrD,YAAY,UAAU,EAAE,GAAG;AAC3B,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,YAAY,EAAE,CAAC,CAAC,WAAW;AACvC,YAAY,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3D,YAAY,IAAI,EAAE;AAClB;AACA,SAAS,kBAAkB,CAAC,CAAC,aAAa;AAC1C,UAAU,KAAK;AACf,UAAU;AACV,YAAY,SAAS,EAAE,+BAA+B;AACtD,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,YAAY,EAAE,CAAC,CAAC,YAAY;AACxC,YAAY,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC;AAC5D,YAAY,IAAI,EAAE;AAClB;AACA,SAAS,kBAAkB,CAAC,CAAC,aAAa;AAC1C,UAAU,KAAK;AACf,UAAU;AACV,YAAY,SAAS,EAAE,8BAA8B;AACrD,YAAY,UAAU,EAAE,GAAG;AAC3B,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,YAAY,EAAE,CAAC,CAAC,WAAW;AACvC,YAAY,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3D,YAAY,IAAI,EAAE;AAClB;AACA,SAAS,CAAC;AACV,QAAQ,CAAC,oBAAoB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,4BAA4B,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxJ,QAAQ,CAAC,oBAAoB,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,kBAAkB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;AAC3O,OAAO;AACP;AACA,EAAE,aAAa,CAAC,CAAC,EAAE;AACnB,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE;AAChD,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AAClC;AACA,EAAE,MAAM,GAAG;AACX,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC;AACxP,MAAM,WAAW;AACjB,MAAM,CAAC;AACP,MAAM,CAAC,IAAI,mBAAmB;AAC9B,MAAM,CAAC,IAAI,qBAAqB;AAChC,MAAM,CAAC,IAAI,mBAAmB;AAC9B,MAAM,CAAC,IAAI,qBAAqB;AAChC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB;AACzC,MAAM,CAAC,IAAI,CAAC,IAAI,0BAA0B;AAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,2BAA2B;AAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,2BAA2B;AACpF,MAAM,CAAC,IAAI;AACX,KAAK;AACL,IAAI,uBAAuB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,0BAA0B,EAAE,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9P;AACA,CAAC;AACD,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AACpB,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AACpB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACnC,CAAC,CAAC,SAAS,GAAG,CAAC;AACf,CAAC,CAAC,eAAe,GAAG,EAAE;AACtB,CAAC,CAAC,cAAc,GAAG,GAAG;AACtB,CAAC,CAAC,YAAY,GAAG;AACjB,EAAE,UAAU,EAAE;AACd,IAAI,QAAQ,EAAE,oDAAoD;AAClE,IAAI,YAAY,EAAE,yFAAyF;AAC3G,IAAI,WAAW,EAAE,gGAAgG;AACjH,IAAI,YAAY,EAAE,yFAAyF;AAC3G,IAAI,WAAW,EAAE,+FAA+F;AAChH,IAAI,YAAY,EAAE,yFAAyF;AAC3G,IAAI,WAAW,EAAE,gGAAgG;AACjH,IAAI,YAAY,EAAE,yFAAyF;AAC3G,IAAI,WAAW,EAAE;AACjB;AACA,CAAC;AACD,IAAI,CAAC,GAAG,CAAC;;ACvZT,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAGC,OAAO,EAAA;AAAA,EAAA,OACvBC,KAAK,CAACC,IAAI,CAAC,oDAAoD,EAAEF,OAAO,CAAC;AAAA,CAAA;AAE3E,IAAMG,cAAc,GAAG;AAAEJ,EAAAA,SAAS,EAATA;AAAU,CAAC;;;;ACDpC,IAAMK,YAAY,GAAG,SAAfA,YAAYA,CAAGC,OAAO,EAAA;EAAA,OAC1BC,sBAAW,CAAAC,eAAA,CAAA;IAAGC,UAAU,EAAEL,cAAc,CAACJ;GAAcM,EAAAA,OAAO,CAAE,CAAC;AAAA,CAAA;;;;;ACCnE,IAAMI,QAAQ,GAAGC,gBAAK,CACpB,UAAAC,IAAA,EAAA;EAAA,IAAAC,iBAAA,EAAAC,kBAAA;AAAA,EAAA,IACEC,CAAC,GAAAH,IAAA,CAADG,CAAC;IACDC,IAAI,GAAAJ,IAAA,CAAJI,IAAI;IACJC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IACZC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IACRC,WAAW,GAAAP,IAAA,CAAXO,WAAW;IACXC,cAAc,GAAAR,IAAA,CAAdQ,cAAc;IAAAC,iBAAA,GAAAT,IAAA,CACdU,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,iBAAA;IACpBE,iBAAiB,GAAAX,IAAA,CAAjBW,iBAAiB;IACjBC,kBAAkB,GAAAZ,IAAA,CAAlBY,kBAAkB;IAClBC,KAAK,GAAAb,IAAA,CAALa,KAAK;IACLC,MAAM,GAAAd,IAAA,CAANc,MAAM;AAAA,EAAA,oBAENC,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,sCAAsC;AAAAC,IAAAA,QAAA,GAClD,CAACP,YAAY,iBACZQ,cAAA,CAACC,MAAM,EAAA;AACLC,MAAAA,OAAO,EAAEb,WAAY;AACrBS,MAAAA,SAAS,EAAC,QAAQ;AAClBK,MAAAA,KAAK,EAAElB,CAAC,CAAC,+CAA+C,CAAE;MAC1DmB,QAAQ,EAAE,SAAVA,QAAQA,GAAA;QAAA,OAAQd,cAAc,CAAC,UAAAD,WAAW,EAAA;AAAA,UAAA,OAAI,CAACA,WAAW;SAAC,CAAA;AAAA;KAC5D,CACF,eACDQ,eAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,+BAA+B;MAAAC,QAAA,EAAA,cAC5CC,cAAA,CAACK,KAAK,EAAA;AAACP,QAAAA,SAAS,EAAC,WAAW;QAAAC,QAAA,EACzBd,CAAC,CAAC,iCAAiC;AAAC,OAChC,CAAC,eACRe,cAAA,CAACM,KAAK,EAAA;AACJR,QAAAA,SAAS,EAAC,aAAa;AACvBS,QAAAA,QAAQ,EAAElB,WAAY;QACtBmB,GAAG,EAAA,CAAAzB,iBAAA,GAAEK,QAAQ,CAACqB,OAAO,MAAA,IAAA,IAAA1B,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,iBAAA,CAAkB2B,YAAa;AACpCC,QAAAA,IAAI,EAAC,QAAQ;AACbC,QAAAA,KAAK,EAAEjB,KAAM;QACbS,QAAQ,EAAES,0BAAoB,CAACpB,iBAAiB;AAAE,OACnD,CAAC;KACC,CAAC,eACNI,eAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,+BAA+B;MAAAC,QAAA,EAAA,cAC5CC,cAAA,CAACK,KAAK,EAAA;AAACP,QAAAA,SAAS,EAAC,WAAW;QAAAC,QAAA,EACzBd,CAAC,CAAC,kCAAkC;AAAC,OACjC,CAAC,eACRe,cAAA,CAACM,KAAK,EAAA;AACJR,QAAAA,SAAS,EAAC,aAAa;AACvBS,QAAAA,QAAQ,EAAElB,WAAY;QACtBmB,GAAG,EAAA,CAAAxB,kBAAA,GAAEI,QAAQ,CAACqB,OAAO,MAAA,IAAA,IAAAzB,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,kBAAA,CAAkB8B,aAAc;AACrCH,QAAAA,IAAI,EAAC,QAAQ;AACbC,QAAAA,KAAK,EAAEhB,MAAO;QACdQ,QAAQ,EAAES,0BAAoB,CAACnB,kBAAkB;AAAE,OACpD,CAAC;AAAA,KACC,CAAC,eACNM,cAAA,CAACe,MAAM,EAAA;AACLjB,MAAAA,SAAS,EAAC,iBAAiB;AAC3B,MAAA,aAAA,EAAY,yCAAyC;AACrDK,MAAAA,KAAK,EAAElB,CAAC,CAAC,gCAAgC,CAAE;AAC3CsB,MAAAA,QAAQ,EACNS,oBAAY,CAAC5B,QAAQ,CAACqB,OAAO,CAAC,KAC7BvB,IAAI,CAACS,KAAK,IAAI,CAAC,IAAIT,IAAI,CAACU,MAAM,IAAI,CAAC,CACrC;AACDqB,MAAAA,OAAO,EAAE9B;AAAa,KACvB,CAAC;AAAA,GACC,CAAC;AAAA,CAEV,CAAC;;ACjDD,IAAM+B,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAApC,IAAA,EAAyD;AAAA,EAAA,IAAAC,iBAAA;AAAA,EAAA,IAAnDK,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAE+B,gBAAgB,GAAArC,IAAA,CAAhBqC,gBAAgB;IAAEC,gBAAgB,GAAAtC,IAAA,CAAhBsC,gBAAgB;AACtE,EAAA,IAAAC,KAAA,GAAA,CAAAtC,iBAAA,GACEK,QAAQ,CAACqB,OAAO,MAAA,IAAA,IAAA1B,iBAAA,KAAA,KAAA,CAAA,GAAAA,iBAAA,GAAI,EAAE;IADFuC,UAAU,GAAAD,KAAA,CAAxBX,YAAY;IAA6Ba,WAAW,GAAAF,KAAA,CAA1BP,aAAa;EAG/C,IAAAU,SAAA,GAAsDC,UAAQ,CAC5DC,mBAAS,CAACP,gBAAgB,CAC5B,CAAC;IAAAQ,UAAA,GAAAC,cAAA,CAAAJ,SAAA,EAAA,CAAA,CAAA;AAFMK,IAAAA,mBAAmB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,sBAAsB,GAAAH,UAAA,CAAA,CAAA,CAAA;AAGlD,EAAA,IAAAI,UAAA,GAAwBN,UAAQ,CAACO,2BAAmB,CAAC;IAAAC,UAAA,GAAAL,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAA9C7C,IAAAA,IAAI,GAAA+C,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,OAAO,GAAAD,UAAA,CAAA,CAAA,CAAA;AACpB,EAAA,IAAAE,UAAA,GAAsCV,UAAQ,CAC5CW,sBAAc,CAAC;AAAEjB,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEkB,MAAAA,SAAS,EAAEjB;AAAiB,KAAC,CAClE,CAAC;IAAAkB,UAAA,GAAAV,cAAA,CAAAO,UAAA,EAAA,CAAA,CAAA;AAFMI,IAAAA,WAAW,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,cAAc,GAAAF,UAAA,CAAA,CAAA,CAAA;AAGlC,EAAA,IAAAG,UAAA,GAA4BhB,UAAQ,CAACiB,iBAAS,CAACxD,IAAI,CAACU,MAAM,EAAE2B,WAAW,CAAC,CAAC;IAAAoB,UAAA,GAAAf,cAAA,CAAAa,UAAA,EAAA,CAAA,CAAA;AAAlE7C,IAAAA,MAAM,GAAA+C,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,SAAS,GAAAD,UAAA,CAAA,CAAA,CAAA;AACxB,EAAA,IAAAE,UAAA,GAA0BpB,UAAQ,CAACiB,iBAAS,CAACxD,IAAI,CAACS,KAAK,EAAE2B,UAAU,CAAC,CAAC;IAAAwB,WAAA,GAAAlB,cAAA,CAAAiB,UAAA,EAAA,CAAA,CAAA;AAA9DlD,IAAAA,KAAK,GAAAmD,WAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,QAAQ,GAAAD,WAAA,CAAA,CAAA,CAAA;EAEtB,IAAME,iBAAiB,GAAGT,WAAW,CAAC5C,KAAK,GAAG4C,WAAW,CAAC3C,MAAM;AAEhE,EAAA,IAAMqD,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,KAAA,EAMf;AAAA,IAAA,IALJC,SAAS,GAAAD,KAAA,CAATC,SAAS;MACTC,UAAU,GAAAF,KAAA,CAAVE,UAAU;MAAAC,WAAA,GAAAH,KAAA,CACVvD,KAAK;AAALA,MAAAA,KAAK,GAAA0D,WAAA,KAAG/B,KAAAA,CAAAA,GAAAA,UAAU,GAAA+B,WAAA;MAAAC,YAAA,GAAAJ,KAAA,CAClBtD,MAAM;AAANA,MAAAA,MAAM,GAAA0D,YAAA,KAAG/B,KAAAA,CAAAA,GAAAA,WAAW,GAAA+B,YAAA;MAAAC,iBAAA,GAAAL,KAAA,CACpBX,WAAW;AAAXA,MAAAA,WAAW,GAAAgB,iBAAA,KAAGP,KAAAA,CAAAA,GAAAA,iBAAiB,GAAAO,iBAAA;IAE/B,IAAMC,UAAU,GAAGC,CAAc,CAC/B;AACEC,MAAAA,IAAI,EAAE,GAAG;AACT/D,MAAAA,KAAK,EAAEgE,qBAAa,CAACR,SAAS,EAAExD,KAAK,CAAC;AACtCC,MAAAA,MAAM,EAAE+D,qBAAa,CAACP,UAAU,EAAExD,MAAM;AAC1C,KAAC,EACD2C,WAAW,EACX5C,KAAK,EACLC,MACF,CAAC;AAED,IAAA,OAAOgE,CAAU,CAACJ,UAAU,EAAE7D,KAAK,EAAEC,MAAM,CAAC;GAC7C;AAED,EAAA,IAAMiE,uBAAuB,GAAG,SAA1BA,uBAAuBA,GAAS;IACpC/B,sBAAsB,CAAC,UAAAD,mBAAmB,EAAA;AAAA,MAAA,OAAI,CAACA,mBAAmB;KAAC,CAAA;GACpE;AAED,EAAA,IAAMpC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGE,KAAK,EAAI;IACjC,IAAMmE,aAAa,GAAGC,IAAI,CAACC,GAAG,CAACrE,KAAK,EAAE2B,UAAU,CAAC;IACjDyB,QAAQ,CAACe,aAAa,CAAC;IACvBG,iBAAiB,CAACH,aAAa,CAAC;GACjC;AAED,EAAA,IAAMpE,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGE,MAAM,EAAI;IACnC,IAAMsE,cAAc,GAAGH,IAAI,CAACC,GAAG,CAACpE,MAAM,EAAE2B,WAAW,CAAC;IACpDqB,SAAS,CAACsB,cAAc,CAAC;IACzBC,mBAAmB,CAACvE,MAAM,CAAC;GAC5B;EAED,IAAMwE,YAAY,GAAG,SAAfA,YAAYA,CAAIjB,SAAS,EAAEC,UAAU,EAAK;IAC9C,IAAIb,WAAW,GAAGS,iBAAiB;IACnC,IAAI,CAACnB,mBAAmB,EAAE;AACxB,MAAA,IAAMQ,SAAS,GAAG;AAAE1C,QAAAA,KAAK,EAAEwD,SAAS;AAAEvD,QAAAA,MAAM,EAAEwD;OAAY;MAC1D,IAAMiB,cAAc,GAAGjC,sBAAc,CAAC;AAAEC,QAAAA,SAAS,EAATA;AAAU,OAAC,CAAC;AACpDE,MAAAA,WAAW,GAAG8B,cAAc,CAAC1E,KAAK,GAAG0E,cAAc,CAACzE,MAAM;MAC1D4C,cAAc,CAAC6B,cAAc,CAAC;AAChC;IAEA,IAAMC,OAAO,GAAGrB,eAAe,CAAC;AAAEE,MAAAA,SAAS,EAATA,SAAS;AAAEC,MAAAA,UAAU,EAAVA,UAAU;AAAEb,MAAAA,WAAW,EAAXA;AAAY,KAAC,CAAC;IAEvEL,OAAO,CAACoC,OAAO,CAAC;IAChBvB,QAAQ,CAACI,SAAS,CAAC;IACnBP,SAAS,CAACQ,UAAU,CAAC;GACtB;AAED,EAAA,IAAMa,iBAAiB,GAAGM,0BAAe,CAAC,UAAA5E,KAAK,EAAI;AACjD,IAAA,IAAIwD,SAAS,GAAGqB,MAAM,CAAC7E,KAAK,CAAC;AAC7B,IAAA,IAAIyD,UAAU,GAAGoB,MAAM,CAAC5E,MAAM,CAAC;AAE/B,IAAA,IAAIiC,mBAAmB,EAAE;AACvBuB,MAAAA,UAAU,GAAGqB,gCAAwB,CAACtB,SAAS,EAAEZ,WAAW,CAAC;MAE7D,IAAIa,UAAU,GAAG7B,WAAW,EAAE;AAC5B6B,QAAAA,UAAU,GAAG7B,WAAW;AACxB4B,QAAAA,SAAS,GAAGuB,+BAAuB,CAACtB,UAAU,EAAEb,WAAW,CAAC;AAC9D;AACF;AAEA6B,IAAAA,YAAY,CAACjB,SAAS,EAAEC,UAAU,CAAC;GACpC,EAAE,GAAG,CAAC;AAEP,EAAA,IAAMe,mBAAmB,GAAGI,0BAAe,CAAC,UAAA3E,MAAM,EAAI;AACpD,IAAA,IAAIuD,SAAS,GAAGqB,MAAM,CAAC7E,KAAK,CAAC;AAC7B,IAAA,IAAIyD,UAAU,GAAGoB,MAAM,CAAC5E,MAAM,CAAC;AAE/B,IAAA,IAAIiC,mBAAmB,EAAE;AACvBsB,MAAAA,SAAS,GAAGuB,+BAAuB,CAACtB,UAAU,EAAEb,WAAW,CAAC;MAE5D,IAAIY,SAAS,GAAG7B,UAAU,EAAE;AAC1B6B,QAAAA,SAAS,GAAG7B,UAAU;AACtB8B,QAAAA,UAAU,GAAGqB,gCAAwB,CAACtB,SAAS,EAAEZ,WAAW,CAAC;AAC/D;AACF;AAEA6B,IAAAA,YAAY,CAACjB,SAAS,EAAEC,UAAU,CAAC;GACpC,EAAE,GAAG,CAAC;AAEP,EAAA,IAAMuB,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGC,WAAW,EAAI;IAC7C,IAAIA,WAAW,IAAI,CAAC,EAAE;IAEtB,IAAIC,QAAQ,GAAG3F,IAAI,CAACS,KAAK,IAAIiF,WAAW,GAAGrC,WAAW,CAAC5C,KAAK,CAAC;IAE7D,IAAImF,kBAAkB,GAAGF,WAAW;IAEpC,IAAIC,QAAQ,GAAG,GAAG,EAAE;AAClBA,MAAAA,QAAQ,GAAG,GAAG;AACdC,MAAAA,kBAAkB,GAAGf,IAAI,CAACgB,KAAK,CAC5BF,QAAQ,GAAG3F,IAAI,CAACS,KAAK,GAAI4C,WAAW,CAAC5C,KACxC,CAAC;AACH;AAEA,IAAA,IAAMqF,gBAAgB,GAAGtC,iBAAS,CAACmC,QAAQ,EAAEvD,UAAU,CAAC;IAExD,IAAMgD,OAAO,GAAGrB,eAAe,CAAC;AAC9BE,MAAAA,SAAS,EAAE6B,gBAAgB;AAC3B5B,MAAAA,UAAU,EAAExD,MAAM;AAClB2C,MAAAA,WAAW,EAAEuC,kBAAkB,GAAGvC,WAAW,CAAC3C;AAChD,KAAC,CAAC;IAEFsC,OAAO,CAACoC,OAAO,CAAC;AAChB9B,IAAAA,cAAc,CAACyC,gBAAU,CAAC1C,WAAW,EAAE;AAAE5C,MAAAA,KAAK,EAAEmF;AAAmB,KAAC,CAAC,CAAC;IACtE/B,QAAQ,CAACiC,gBAAgB,CAAC;GAC3B;AAED,EAAA,IAAME,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGC,YAAY,EAAI;IAC/C,IAAIA,YAAY,IAAI,CAAC,EAAE;IAEvB,IAAIC,SAAS,GAAGlG,IAAI,CAACU,MAAM,IAAIuF,YAAY,GAAG5C,WAAW,CAAC3C,MAAM,CAAC;IAEjE,IAAIyF,mBAAmB,GAAGF,YAAY;IAEtC,IAAIC,SAAS,GAAG,GAAG,EAAE;AACnBA,MAAAA,SAAS,GAAG,GAAG;AACfC,MAAAA,mBAAmB,GAAGtB,IAAI,CAACgB,KAAK,CAC7BK,SAAS,GAAGlG,IAAI,CAACU,MAAM,GAAI2C,WAAW,CAAC3C,MAC1C,CAAC;AACH;AAEA,IAAA,IAAM0F,iBAAiB,GAAG5C,iBAAS,CAAC0C,SAAS,EAAE7D,WAAW,CAAC;IAE3D,IAAM+C,OAAO,GAAGrB,eAAe,CAAC;AAC9BE,MAAAA,SAAS,EAAExD,KAAK;AAChByD,MAAAA,UAAU,EAAEkC,iBAAiB;AAC7B/C,MAAAA,WAAW,EAAEA,WAAW,CAAC5C,KAAK,GAAG0F;AACnC,KAAC,CAAC;IAEFnD,OAAO,CAACoC,OAAO,CAAC;AAChB9B,IAAAA,cAAc,CAACyC,gBAAU,CAAC1C,WAAW,EAAE;AAAE3C,MAAAA,MAAM,EAAEyF;AAAoB,KAAC,CAAC,CAAC;IACxEzC,SAAS,CAAC0C,iBAAiB,CAAC;GAC7B;EAED,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,SAAS,EAAEC,cAAc,EAAK;IACtD,IAAI,CAAC5D,mBAAmB,EAAE;MACxB,IAAMU,YAAW,GAAGH,sBAAc,CAAC;AACjCC,QAAAA,SAAS,EAAE;UACT1C,KAAK,EAAEoE,IAAI,CAACgB,KAAK,CAACS,SAAS,CAAC7F,KAAK,CAAC;AAClCC,UAAAA,MAAM,EAAEmE,IAAI,CAACgB,KAAK,CAACS,SAAS,CAAC5F,MAAM;AACrC;AACF,OAAC,CAAC;MACF4C,cAAc,CAACD,YAAW,CAAC;AAC7B;IACAK,SAAS,CAACF,iBAAS,CAAC+C,cAAc,CAAC7F,MAAM,EAAE2B,WAAW,CAAC,CAAC;IACxDwB,QAAQ,CAACL,iBAAS,CAAC+C,cAAc,CAAC9F,KAAK,EAAE2B,UAAU,CAAC,CAAC;IACrDY,OAAO,CAACuD,cAAc,CAAC;GACxB;AAED,EAAA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,KAAA,EAA0B;AAAA,IAAA,IAAAC,qBAAA;AAAA,IAAA,IAAZC,KAAK,GAAAF,KAAA,CAAbG,MAAM;AAC/B,IAAA,IAAsBxE,UAAU,GAAiCuE,KAAK,CAA9DnF,YAAY;MAA6Ba,WAAW,GAAKsE,KAAK,CAApC/E,aAAa;AAC/C,IAAA,IAAMiF,YAAY,GAAA,CAAAH,qBAAA,GAAGxE,gBAAgB,CAACzB,KAAK,MAAA,IAAA,IAAAiG,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAItE,UAAU;IAEzD,IAAMiB,WAAW,GAAGH,sBAAc,CAAC;AACjCjB,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBkB,MAAAA,SAAS,EAAE;AAAE1C,QAAAA,KAAK,EAAE2B,UAAU;AAAE1B,QAAAA,MAAM,EAAE2B;AAAY;AACtD,KAAC,CAAC;IAEF,IAAMyB,iBAAiB,GAAGT,WAAW,CAAC5C,KAAK,GAAG4C,WAAW,CAAC3C,MAAM;IAEhE,IAAAoG,mBAAA,GAAkCC,0BAAkB,CAAC;AACnDJ,QAAAA,KAAK,EAALA,KAAK;AACL7C,QAAAA,iBAAiB,EAAjBA,iBAAiB;AACjB+C,QAAAA,YAAY,EAAZA;AACF,OAAC,CAAC;MAJM5C,SAAS,GAAA6C,mBAAA,CAAT7C,SAAS;MAAEC,UAAU,GAAA4C,mBAAA,CAAV5C,UAAU;IAM7B,IAAMlE,IAAI,GAAG+D,eAAe,CAAC;AAC3BE,MAAAA,SAAS,EAATA,SAAS;AACTC,MAAAA,UAAU,EAAVA,UAAU;AACVzD,MAAAA,KAAK,EAAE2B,UAAU;AACjB1B,MAAAA,MAAM,EAAE2B,WAAW;AACnBgB,MAAAA,WAAW,EAAES;AACf,KAAC,CAAC;IAEFR,cAAc,CAACD,WAAW,CAAC;IAC3BL,OAAO,CAAChD,IAAI,CAAC;IACb0D,SAAS,CAACF,iBAAS,CAACxD,IAAI,CAACU,MAAM,EAAE2B,WAAW,CAAC,CAAC;IAC9CwB,QAAQ,CAACL,iBAAS,CAACxD,IAAI,CAACS,KAAK,EAAE2B,UAAU,CAAC,CAAC;GAC5C;EAED,OAAO;AACLuC,IAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBpE,IAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBC,IAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBiF,IAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBO,IAAAA,wBAAwB,EAAxBA,wBAAwB;AACxB3C,IAAAA,WAAW,EAAXA,WAAW;AACX5C,IAAAA,KAAK,EAALA,KAAK;AACLT,IAAAA,IAAI,EAAJA,IAAI;AACJU,IAAAA,MAAM,EAANA,MAAM;AACN8F,IAAAA,eAAe,EAAfA,eAAe;AACfH,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB1D,IAAAA,mBAAmB,EAAnBA;GACD;AACH,CAAC;;AC/MD,IAAMqE,WAAW,GAAG,SAAdA,WAAWA,CAAApH,IAAA,EAOX;AAAA,EAAA,IAAAC,iBAAA;AAAA,EAAA,IANJ8G,KAAK,GAAA/G,IAAA,CAAL+G,KAAK;IACLM,WAAW,GAAArH,IAAA,CAAXqH,WAAW;IAAAC,qBAAA,GAAAtH,IAAA,CACXuH,uBAAuB;AAAvBA,IAAAA,uBAAuB,GAAAD,qBAAA,KAAGE,KAAAA,CAAAA,GAAAA,cAAI,GAAAF,qBAAA;IAAAG,aAAA,GAAAzH,IAAA,CAC9B0H,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,aAAA;IAAAE,qBAAA,GAAA3H,IAAA,CACbqC,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAsF,qBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAC,qBAAA,GAAA5H,IAAA,CACrBsC,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAsF,qBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,qBAAA;AAErB,EAAA,IAAMtH,QAAQ,GAAGuH,QAAM,CAAC,IAAI,CAAC;AAC7B,EAAA,IAAMC,UAAU,GAAGD,QAAM,CAAC,IAAI,CAAC;AAE/B,EAAA,IAAAtF,KAAA,GAAA,CAAAtC,iBAAA,GACEK,QAAQ,CAACqB,OAAO,MAAA,IAAA,IAAA1B,iBAAA,KAAA,KAAA,CAAA,GAAAA,iBAAA,GAAI,EAAE;IADFuC,UAAU,GAAAD,KAAA,CAAxBX,YAAY;IAA6Ba,WAAW,GAAAF,KAAA,CAA1BP,aAAa;AAG/C,EAAA,IAAAU,SAAA,GAAsCC,UAAQ,CAAC,KAAK,CAAC;IAAAE,UAAA,GAAAC,cAAA,CAAAJ,SAAA,EAAA,CAAA,CAAA;AAA9CnC,IAAAA,WAAW,GAAAsC,UAAA,CAAA,CAAA,CAAA;AAAErC,IAAAA,cAAc,GAAAqC,UAAA,CAAA,CAAA,CAAA;AAElC,EAAA,IAAAkF,eAAA,GAAcC,2BAAc,EAAE;IAAtB7H,CAAC,GAAA4H,eAAA,CAAD5H,CAAC;AAET,EAAA,IAAA8H,aAAA,GAA8BxI,YAAY,EAAE;IAA5BL,SAAS,GAAA6I,aAAA,CAAjBC,MAAM;EAEd,IAAAC,iBAAA,GAaI/F,gBAAgB,CAAC;AAAEC,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEC,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEhC,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAC;IAZpEyE,uBAAuB,GAAAoD,iBAAA,CAAvBpD,uBAAuB;IACvBpE,iBAAiB,GAAAwH,iBAAA,CAAjBxH,iBAAiB;IACjBC,kBAAkB,GAAAuH,iBAAA,CAAlBvH,kBAAkB;IAClBiF,uBAAuB,GAAAsC,iBAAA,CAAvBtC,uBAAuB;IACvBO,wBAAwB,GAAA+B,iBAAA,CAAxB/B,wBAAwB;IACxB3C,WAAW,GAAA0E,iBAAA,CAAX1E,WAAW;IACX5C,KAAK,GAAAsH,iBAAA,CAALtH,KAAK;IACLC,MAAM,GAAAqH,iBAAA,CAANrH,MAAM;IACN8F,eAAe,GAAAuB,iBAAA,CAAfvB,eAAe;IACfH,gBAAgB,GAAA0B,iBAAA,CAAhB1B,gBAAgB;IAChBrG,IAAI,GAAA+H,iBAAA,CAAJ/H,IAAI;IACJ2C,mBAAmB,GAAAoF,iBAAA,CAAnBpF,mBAAmB;AAGrB,EAAA,IAAMqF,WAAW,GAAG,SAAdA,WAAWA,GAAS;AACxB,IAAA,IAAI7H,WAAW,EAAE;MACfgH,uBAAuB,CAACR,KAAK,CAAC;AAE9B,MAAA;AACF;AAEA3H,IAAAA,SAAS,CACP;MAAEgB,IAAI,EAAEiI,qBAAa,CAAC;AAAEjI,QAAAA,IAAI,EAAJA,IAAI;AAAEE,QAAAA,QAAQ,EAARA;AAAS,OAAC,CAAC;AAAEoH,MAAAA,QAAQ,EAARA;AAAS,KAAC,EACrD;AAAEY,MAAAA,SAAS,EAAEf;AAAwB,KACvC,CAAC;GACF;AAED,EAAA,IAAMlH,YAAY,GAAG,SAAfA,YAAYA,GAAS;AACzB,IAAA,IAAIkI,kCAA4B,EAAE;AAChCH,MAAAA,WAAW,EAAE;AAEb,MAAA;AACF;AAEA,IAAA,IAAI7H,WAAW,EAAE;MACfgH,uBAAuB,CAACR,KAAK,CAAC;AAE9B,MAAA;AACF;IAEA,IAAMyB,MAAM,GACVC,wBAAW,CAACC,qBAAqB,KAAKC,iBAAW,GAC7CC,+BAAuB,CAAC;AAAE7B,MAAAA,KAAK,EAALA,KAAK;AAAE3G,MAAAA,IAAI,EAAJA;KAAM,CAAC,GACxCyI,6BAAqB,CAAC;AAAEzI,MAAAA,IAAI,EAAJA,IAAI;MAAE0I,QAAQ,EAAE/B,KAAK,CAACvI,GAAG;AAAE8B,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAC;AACpEiH,IAAAA,uBAAuB,CAACpB,gBAAU,CAACY,KAAK,EAAE;AAAEvI,MAAAA,GAAG,EAAEgK;AAAO,KAAC,CAAC,CAAC;GAC5D;AAED,EAAA,oBACEzH,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,uCAAuC;IAAAC,QAAA,EAAA,cACpDC,cAAA,CAACe,MAAM,EAAA;AACLjB,MAAAA,SAAS,EAAC,YAAY;AACtB,MAAA,aAAA,EAAY,0BAA0B;AACtC+H,MAAAA,IAAI,EAAEC,SAAU;AAChBC,MAAAA,YAAY,EAAC,MAAM;AACnBC,MAAAA,KAAK,EAAC,MAAM;AACZ/G,MAAAA,OAAO,EAAEkF;KACV,CAAC,eACFtG,eAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,oFAAoF;AAAAC,MAAAA,QAAA,gBACjGC,cAAA,CAAA,KAAA,EAAA;AACEiI,QAAAA,EAAE,EAAC,aAAa;AAChBC,QAAAA,GAAG,EAAEtB,UAAW;AAChB9G,QAAAA,SAAS,EAAEqI,UAAU,CACnB,MAAM,EACN,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV;UACE,cAAc,EAAEC,qBAAa,CAAC;AAAExB,YAAAA,UAAU,EAAVA,UAAU;AAAExH,YAAAA,QAAQ,EAARA;WAAU;AACxD,SACF,CAAE;QAAAW,QAAA,eAEFF,eAAA,CAACwI,CAAS,EAAA;AACRnJ,UAAAA,IAAI,EAAEG,WAAW,GAAG,IAAI,GAAGH,IAAK;AAChCoJ,UAAAA,GAAG,EAAEzC,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEvI,GAAI;AAChB0K,UAAAA,KAAK,EAAEO,2BAAmB,CAAC3B,UAAU,EAAExH,QAAQ,CAAE;UACjDoJ,MAAM,EACJ3G,mBAAmB,GAAGU,WAAW,CAAC5C,KAAK,GAAG4C,WAAW,CAAC3C,MAAM,GAAG,CAChE;AACDQ,UAAAA,QAAQ,EAAEmF,gBAAiB;AAC3BkD,UAAAA,UAAU,EAAElD,gBAAiB;AAAAxF,UAAAA,QAAA,gBAE7BC,cAAA,CAAA,KAAA,EAAA;AACE0I,YAAAA,GAAG,EAAEzJ,CAAC,CAAC,iCAAiC,CAAE;AAC1C,YAAA,aAAA,EAAY,6BAA6B;AACzCiJ,YAAAA,GAAG,EAAE9I,QAAS;AACdkJ,YAAAA,GAAG,EAAEzC,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEvI,GAAI;AAChBqL,YAAAA,MAAM,EAAEjD;AAAgB,WACzB,CAAC,eACF7F,eAAA,CAAC+I,UAAU,EAAA;AACT9I,YAAAA,SAAS,EAAC,0FAA0F;AACpGkI,YAAAA,KAAK,EAAC,MAAM;AAAAjI,YAAAA,QAAA,EAEXuB,CAAAA,UAAU,EAAC,GAAC,EAACC,WAAW;AAAA,WACf,CAAC;SACJ;AAAC,OACT,CAAC,eACNvB,cAAA,CAACpB,QAAQ,EAAA;AAEL2D,QAAAA,WAAW,EAAXA,WAAW;AACXrD,QAAAA,IAAI,EAAJA,IAAI;AACJgG,QAAAA,wBAAwB,EAAxBA,wBAAwB;AACxBP,QAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBjF,QAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBP,QAAAA,YAAY,EAAZA,YAAY;AACZM,QAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBG,QAAAA,MAAM,EAANA,MAAM;AACNR,QAAAA,QAAQ,EAARA,QAAQ;AACRyC,QAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBxC,QAAAA,WAAW,EAAXA,WAAW;AACXwE,QAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBvE,QAAAA,cAAc,EAAdA,cAAc;AACdK,QAAAA,KAAK,EAALA,KAAK;QAEPH,YAAY,EAAEkC,mBAAS,CAACP,gBAAgB;AAAE,OAC3C,CAAC;AAAA,KACC,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;ACpKD,IAAM0H,KAAK,GAAG,SAARA,KAAKA,CAAA/J,IAAA,EAAA;AAAA,EAAA,IAAMgK,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IAAExL,GAAG,GAAAwB,IAAA,CAAHxB,GAAG;IAAEyL,IAAI,GAAAjK,IAAA,CAAJiK,IAAI;IAAEC,GAAG,GAAAlK,IAAA,CAAHkK,GAAG;AAAA,EAAA,OACzC5K,KAAK,CAAC6K,GAAG,CAAC3L,GAAG,EAAE;AAAE4L,IAAAA,MAAM,EAAE;AAAEJ,MAAAA,UAAU,EAAVA,UAAU;AAAEC,MAAAA,IAAI,EAAJA,IAAI;AAAEC,MAAAA,GAAG,EAAHA;AAAI;AAAE,GAAC,CAAC;AAAA,CAAA;AAEvD,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAIC,QAAQ,EAAE9L,GAAG,EAAA;AAAA,EAAA,OAChCc,KAAK,CAAA,QAAA,CAAO,CAACd,GAAG,EAAE;AAAE4L,IAAAA,MAAM,EAAE;AAAEE,MAAAA,QAAQ,EAARA;AAAS;AAAE,GAAC,CAAC;AAAA,CAAA;AAE7C,IAAMC,SAAS,GAAG;AAAER,EAAAA,KAAK,EAALA,KAAK;AAAEM,EAAAA,WAAW,EAAXA;AAAY,CAAC;;;;ACGxC,IAAMG,cAAc,GAAG,SAAjBA,cAAcA,CAAAxK,IAAA,EAAA;AAAA,EAAA,IAAMgK,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IAAExL,GAAG,GAAAwB,IAAA,CAAHxB,GAAG;IAAE0L,GAAG,GAAAlK,IAAA,CAAHkK,GAAG;AAAA,EAAA,IAAIxK,OAAO,GAAA+K,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;EAAA,OAC5DG,2BAAgB,CAAAhL,eAAA,CAAA;AACdiL,IAAAA,QAAQ,EAAE,CAACC,gBAAU,CAACC,WAAW,EAAEf,UAAU,CAAC;AAC9CgB,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAAzI,KAAA,EAAA;AAAA,MAAA,IAAA0I,eAAA,GAAA1I,KAAA,CAAK2I,SAAS;AAATA,QAAAA,SAAS,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,eAAA;MAAA,OACvBV,SAAS,CAACR,KAAK,CAAC;AAAEC,QAAAA,UAAU,EAAVA,UAAU;AAAExL,QAAAA,GAAG,EAAHA,GAAG;AAAEyL,QAAAA,IAAI,EAAEiB,SAAS;AAAEhB,QAAAA,GAAG,EAAHA;AAAI,OAAC,CAAC;AAAA,KAAA;IAC5DiB,gBAAgB,EAAE,SAAlBA,gBAAgBA,CAAGC,QAAQ,EAAEjM,CAAC,EAAEkM,aAAa,EAAA;MAAA,OAC3CD,QAAQ,CAACV,MAAM,KAAKY,uBAAe,GAAGD,aAAa,GAAG,CAAC,GAAG,IAAI;AAAA,KAAA;AAChEE,IAAAA,MAAM,EAAE,SAARA,MAAMA,CAAEC,IAAI,EAAI;MACd,IAAMC,OAAO,GAAGD,IAAI,CAACE,KAAK,CAACC,OAAO,CAACC,cAAQ,CAAC;MAE5C,OAAO;AAAEH,QAAAA,OAAO,EAAPA;OAAS;KACnB;AACDI,IAAAA,gBAAgB,EAAE,CAAC;AACnBC,IAAAA,SAAS,EAAEC;GACRrM,EAAAA,OAAO,CACX,CAAC;AAAA,CAAA;AAEJ,IAAMsM,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGxN,GAAG,EAAI;AAClC,EAAA,IAAMyN,WAAW,GAAGC,yBAAc,EAAE;AAEpC,EAAA,OAAOvM,sBAAW,CAAC;AACjBE,IAAAA,UAAU,EAAE,SAAZA,UAAUA,CAAEyK,QAAQ,EAAA;AAAA,MAAA,OAAIC,SAAS,CAACF,WAAW,CAACC,QAAQ,EAAE9L,GAAG,CAAC;AAAA,KAAA;AAC5D8J,IAAAA,SAAS,EAAE,SAAXA,SAASA,CAAGnJ,CAAC,EAAEgN,SAAS,EAAK;MAC3BF,WAAW,CAACG,cAAc,CACxB;AAAEvB,QAAAA,QAAQ,EAAE,CAACC,gBAAU,CAACC,WAAW;OAAG,EACtC,UAAAsB,GAAG,EAAA;QAAA,OAAK;UACNX,KAAK,EAAEW,GAAG,CAACX,KAAK,CAACY,GAAG,CAAC,UAAArC,IAAI,EAAA;AAAA,YAAA,OACvBA,IAAI,CAACsC,MAAM,CAAC,UAAAC,IAAI,EAAA;AAAA,cAAA,OAAI,CAACL,SAAS,CAACM,QAAQ,CAACD,IAAI,CAACE,MAAM,IAAIF,IAAI,CAACrD,EAAE,CAAC;aAAC,CAAA;AAAA,WAClE,CAAC;UACDwD,UAAU,EAAEN,GAAG,CAACM;SACjB;AAAA,OACH,CAAC;AACH;AACF,GAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpCD,IAAIC,sBAAoB,GAAG,8CAA8C;;AAEzE,IAAA,sBAAc,GAAGA,sBAAoB;;;;;;;;;ACFrC,IAAI,oBAAoB,GAAGC,sBAAqC;;AAEhE,SAAS,aAAa,GAAG;AACzB,SAAS,sBAAsB,GAAG;AAClC,sBAAsB,CAAC,iBAAiB,GAAG,aAAa;;AAExD,IAAA,wBAAc,GAAG,WAAW;AAC5B,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;AAChF,IAAI,IAAI,MAAM,KAAK,oBAAoB,EAAE;AACzC;AACA,MAAM;AACN;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,KAAK;AACvB,MAAM,sFAAsF;AAC5F,MAAM,+CAA+C;AACrD,MAAM;AACN,KAAK;AACL,IAAI,GAAG,CAAC,IAAI,GAAG,qBAAqB;AACpC,IAAI,MAAM,GAAG;AACb,GACA,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI;AACxB,EAAE,SAAS,OAAO,GAAG;AACrB,IAAI,OAAO,IAAI;AACf,GACA;AACA;AACA,EAAE,IAAI,cAAc,GAAG;AACvB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,MAAM,EAAE,IAAI;;AAEhB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,WAAW,EAAE,IAAI;AACrB,IAAI,UAAU,EAAE,OAAO;AACvB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,OAAO;AACrB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,KAAK,EAAE,OAAO;;AAElB,IAAI,cAAc,EAAE,sBAAsB;AAC1C,IAAI,iBAAiB,EAAE;AACvB,GAAG;;AAEH,EAAE,cAAc,CAAC,SAAS,GAAG,cAAc;;AAE3C,EAAE,OAAO,cAAc;AACvB,CAAC;;;;;;;;;AClDM;AACP;AACA;AACA,EAAEC,SAAA,CAAA,OAAc,GAAGD,wBAAqC,EAAE;AAC1D;;;;AClBA,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,EAAE;AAClD,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;;AAE7B,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AAC7D,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AACjC;AACA;AACA;;AAEA,EAAE,OAAO,MAAM;AACf,CAAC;;AAED,IAAI,IAAI,GAAG,SAAS,IAAI,GAAG;AAC3B,EAAE,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE;;AAEvF,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AAElC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AACrC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9B,IAAI,OAAO,IAAI;AACf;;AAEA,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AAC/B,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI;AACxB,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AACrB,IAAI,OAAO,IAAI;AACf;;AAEA,EAAE,SAAS,GAAG,CAAC,IAAI,EAAE;AACrB,IAAI,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK;;AAE3F,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;;AAEzF,IAAI,OAAO,IAAI;AACf;;AAEA,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE;AACtB,IAAI,IAAI,KAAK,GAAG,IAAI;;AAEpB,IAAI,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;AAC5G,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;AACtC;;AAEA;AACA,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;;AAEpD;AACA,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE;AAC9C;AACA,MAAM,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;;AAEzC;AACA,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;AAChC,KAAK,CAAC;;AAEN,IAAI,OAAO,IAAI;AACf;;AAEA,EAAE,OAAO,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE;;AAEhC,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,IAAI,EAAE;AACV,GAAG,CAAC;AACJ,CAAC;;AAED,IAAI,MAAM,GAAG,SAAS,MAAM,GAAG;AAC/B,EAAE,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE;;AAEtF;;AAEA,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC;AACvB,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC;;AAEvB,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC;AACxB,EAAE,IAAI,UAAU,GAAG,KAAK,CAAC;;AAEzB,EAAE,IAAI,YAAY,GAAG,KAAK,CAAC;AAC3B,EAAE,IAAI,aAAa,GAAG,KAAK,CAAC;;AAE5B,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC;AACtB,EAAE,IAAI,QAAQ,GAAG,KAAK,CAAC;AACvB,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC;AACxB,EAAE,IAAI,UAAU,GAAG,KAAK,CAAC;;AAEzB,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC;AACpB,EAAE,IAAI,WAAW,GAAG,KAAK,CAAC;AAC1B,EAAE,IAAI,YAAY,GAAG,KAAK,CAAC;;AAE3B;;AAEA,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM;AAChG,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;AAC7C,EAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK;;AAE3C,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC;;AAE5G,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,GAAG,EAAE,SAAS,GAAG,GAAG;AACxB,MAAM,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;AACxC,KAAK;AACL,IAAI,GAAG,EAAE,SAAS,IAAI,GAAG;AACzB,MAAM,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;AAChE,QAAQ,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,CAAC;AAC9C,OAAO,CAAC;AACR;AACA,GAAG;;AAEH;;AAEA,EAAE,IAAI,KAAK,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC;;AAEvD,EAAE,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,CAAC;;AAE9E;;AAEA,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE;AACZ,GAAG,CAAC;;AAEJ,EAAE,OAAO,QAAQ;;AAEjB;;AAEA,EAAE,SAAS,SAAS,CAAC,SAAS,EAAE;AAChC,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACtC,MAAM,OAAO,IAAI,EAAE;AACnB,KAAK,CAAC;AACN;;AAEA;;AAEA,EAAE,SAAS,OAAO,CAAC,KAAK,EAAE;;AAG1B,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C;;AAEA,EAAE,SAAS,SAAS,CAAC,MAAM,EAAE;AAC7B,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY;AAC5D,MAAM,OAAO,CAAC;AACd,KAAK,CAAC;AACN;;AAEA;;AAEA,EAAE,SAAS,YAAY,GAAG;AAC1B;AACA,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;AACrC,MAAM,OAAO,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO;AACjF,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;AACpB;;AAEA,EAAE,SAAS,YAAY,GAAG;AAC1B,IAAI,SAAS,GAAG,YAAY,EAAE;AAC9B;;AAEA,EAAE,SAAS,aAAa,GAAG;AAC3B;AACA,IAAI,UAAU,GAAG,SAAS,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;AAC9E;;AAEA;;AAEA,EAAE,SAAS,UAAU,GAAG;AACxB,IAAI,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;AACjD;;AAEA;;AAEA,EAAE,SAAS,QAAQ,GAAG;AACtB,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC,EAAE;AAChD;;AAEA,EAAE,SAAS,kBAAkB,GAAG;AAChC;AACA,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,MAAM;AACN;;AAEA,IAAI,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE;AAC/C,MAAM,OAAO,OAAO,CAAC,WAAW;AAChC,KAAK,CAAC;AACN,IAAI,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE;AAChD,MAAM,OAAO,OAAO,CAAC,YAAY;AACjC,KAAK,CAAC;AACN;;AAEA,EAAE,SAAS,cAAc,GAAG;AAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE,KAAK,EAAE;AAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;;AAE/E,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI;AAClD,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,YAAY,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI;;AAE5F;AACA,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO;AACnC,QAAQ,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ;AACrC,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM;AACrF;;AAEA,MAAM,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;;AAEtC;AACA,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;AACpC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;;AAEtC,MAAM,IAAI,SAAS,IAAI,UAAU,EAAE;AACnC,QAAQ,aAAa,CAAC,YAAY,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM;AACrE;AACA,KAAK,CAAC;AACN;;AAEA;;AAEA,EAAE,SAAS,kBAAkB,GAAG;AAChC,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACzC,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,GAAG,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,IAAI;AAChH,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI;AAC3F;;AAEA;;AAEA,EAAE,SAAS,WAAW,GAAG;AACzB,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,MAAM,CAAC,qBAAqB,CAAC,aAAa,CAAC;AACjD,MAAM,OAAO,GAAG,IAAI;AACpB;AACA;;AAEA,EAAE,SAAS,aAAa,GAAG;AAC3B,IAAI,IAAI,SAAS,KAAK,YAAY,EAAE,EAAE;AACtC,MAAM,IAAI,EAAE;AACZ,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;AACzC;;AAEA,IAAI,OAAO,GAAG,KAAK;AACnB;;AAEA;;AAEA,EAAE,SAAS,IAAI,GAAG;AAClB,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;AAEhC,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAChC;;AAEA,EAAE,SAAS,MAAM,GAAG;AACpB,IAAI,OAAO,GAAG,IAAI;AAClB,IAAI,SAAS,CAAC,GAAG,CAAC;;AAElB,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClC;;AAEA,EAAE,SAAS,MAAM,GAAG;AACpB,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;;AAEvF,IAAI,IAAI,MAAM,GAAG,IAAI,GAAG,kBAAkB,GAAG,qBAAqB;;AAElE,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC;;AAEzC,IAAI,OAAO,QAAQ;AACnB;AACA,CAAC;;;;;;;;;;;;;AChRD,CAAA,MAAM,CAAC,cAAc,CAAU,OAAA,EAAA,YAAY,EAAE;AAC7C,GAAE,KAAK,EAAE;AACT,EAAC,CAAC;;CAEF,IAAI,YAAY,GAAG,YAAY,EAAE,SAAS,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,IAAI,OAAO,IAAI,UAAU,EAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,UAAU,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,IAAI,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE;;CAEnjB,IAAI,MAAM,GAAGA,CAAgB;;AAE7B,CAAA,IAAI,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC;;CAE5C,IAAI,UAAU,GAAGE,gBAAqB;;AAEtC,CAAA,IAAI,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC;;AAEpD,CAAA,SAAS,sBAAsB,CAAC,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;;AAE7F,CAAA,SAAS,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC;;CAE1N,SAAS,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,YAAY,WAAW,CAAC,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC,EAAE;;AAEvJ,CAAA,SAAS,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,cAAc,CAAC,2DAA2D,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;;AAE9O,CAAA,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,0DAA0D,GAAG,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;;AAE5e,CAAA,IAAI,cAAc,GAAG,UAAU,UAAU,EAAE;AAC3C,GAAE,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC;;AAEvC,GAAE,SAAS,cAAc,CAAC,KAAK,EAAE;AACjC,KAAI,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC;;KAErC,IAAI,KAAK,GAAG,0BAA0B,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;KAEnI,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;KACvD,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;KACnE,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;AACnE,KAAI,OAAO,KAAK;AAChB;;AAEA,GAAE,YAAY,CAAC,cAAc,EAAE,CAAC;KAC5B,GAAG,EAAE,mBAAmB;AAC5B,KAAI,KAAK,EAAE,SAAS,iBAAiB,GAAG;OAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS;AAC5C,OAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE;OAC1C,IAAI,CAAC,oBAAoB,EAAE;AACjC;AACA,IAAG,EAAE;KACD,GAAG,EAAE,oBAAoB;AAC7B,KAAI,KAAK,EAAE,SAAS,kBAAkB,GAAG;OACnC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE;SACzC,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC;AACvE,SAAQ,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe;AAC7G,SAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B;OACM,IAAI,CAAC,oBAAoB,EAAE;AACjC;AACA,IAAG,EAAE;KACD,GAAG,EAAE,sBAAsB;AAC/B,KAAI,KAAK,EAAE,SAAS,oBAAoB,GAAG;OACrC,IAAI,CAAC,oBAAoB,EAAE;OAC3B,IAAI,CAAC,wBAAwB,EAAE;AACrC;AACA,IAAG,EAAE;KACD,GAAG,EAAE,oBAAoB;AAC7B,KAAI,KAAK,EAAE,SAAS,kBAAkB,GAAG;OACnC,IAAI,OAAO,GAAG,KAAK;;OAEnB,IAAI,WAAW,GAAG;SAChB,IAAI,OAAO,GAAG;WACZ,OAAO,GAAG,IAAI;AACxB;QACO;;AAEP,OAAM,IAAI;SACF,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC;SACpD,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC;QACxD,CAAC,OAAO,CAAC,EAAE;AAClB;AACA;AACA,OAAM,OAAO,OAAO;AACpB;AACA,IAAG,EAAE;KACD,GAAG,EAAE,sBAAsB;AAC/B,KAAI,KAAK,EAAE,SAAS,oBAAoB,GAAG;AAC3C,OAAM,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU;;AAEzC,OAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AACrC,SAAQ,OAAO,GAAG;AAClB,WAAU,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;AAC3C,WAAU,OAAO,EAAE;UACV;AACT,QAAO,MAAM;AACb,SAAQ,OAAO,GAAG;AAClB,WAAU,OAAO,EAAE;UACV;AACT;AACA,OAAM,OAAO,OAAO;AACpB;;AAEA;;AAEA,IAAG,EAAE;KACD,GAAG,EAAE,kBAAkB;AAC3B,KAAI,KAAK,EAAE,SAAS,gBAAgB,CAAC,MAAM,EAAE;AAC7C,OAAM,IAAI,CAAC,aAAa,GAAG,MAAM;AACjC;AACA,IAAG,EAAE;KACD,GAAG,EAAE,0BAA0B;AACnC,KAAI,KAAK,EAAE,SAAS,wBAAwB,GAAG;OACzC,IAAI,QAAQ,GAAG,MAAM;OACrB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;AAC1C,SAAQ,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU;AAClD;;OAEM,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC9H;AACA,IAAG,EAAE;KACD,GAAG,EAAE,sBAAsB;AAC/B,KAAI,KAAK,EAAE,SAAS,oBAAoB,GAAG;OACrC,IAAI,QAAQ,GAAG,MAAM;OACrB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;SAClC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC;AAC9D;;OAEM,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;OAChH,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACtH;AACA,IAAG,EAAE;KACD,GAAG,EAAE,kBAAkB;AAC3B,KAAI,KAAK,EAAE,SAAS,gBAAgB,CAAC,EAAE,EAAE;AACzC,OAAM,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AACnF,OAAM,IAAI,YAAY,IAAI,IAAI,EAAE;AAChC,SAAQ,OAAO,YAAY;AAC3B;AACA,OAAM,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU;AAChC;AACA,IAAG,EAAE;KACD,GAAG,EAAE,aAAa;AACtB,KAAI,KAAK,EAAE,SAAS,WAAW,CAAC,KAAK,EAAE;AACvC,OAAM,OAAO,KAAK;AAClB;AACA,IAAG,EAAE;KACD,GAAG,EAAE,sBAAsB;AAC/B,KAAI,KAAK,EAAE,SAAS,oBAAoB,GAAG;OACrC,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC;;OAE/D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE;SACzC;AACR;;OAEM,IAAI,QAAQ,GAAG,MAAM;OACrB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;SAClC,QAAQ,GAAG,aAAa;AAChC;;OAEM,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;OACrH,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;OAC7G,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;;AAEnH,OAAM,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;SAC1B,IAAI,CAAC,cAAc,EAAE;AAC7B;AACA;AACA,IAAG,EAAE;KACD,GAAG,EAAE,oBAAoB;AAC7B,KAAI,KAAK,EAAE,SAAS,kBAAkB,CAAC,CAAC,EAAE;AAC1C;AACA;AACA,OAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;SAChD,CAAC,CAAC,cAAc,EAAE;AAC1B;AACA;AACA,IAAG,EAAE;KACD,GAAG,EAAE,gBAAgB;AACzB,KAAI,KAAK,EAAE,SAAS,cAAc,GAAG;AACrC,OAAM,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe;OAC7B,IAAI,QAAQ,GAAG,MAAM;OACrB,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;;AAEhD,OAAM,IAAI,MAAM,GAAG,KAAK,CAAC;AACzB,OAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AAChC,SAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI;AACvF,SAAQ,IAAI,SAAS,GAAG,QAAQ,CAAC,WAAW,KAAK,SAAS,GAAG,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS;AACjG,SAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;WACxB,MAAM,GAAG,SAAS;AAC5B,UAAS,MAAM;WACL,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC;AACtD;AACA,QAAO,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AACvC,SAAQ,MAAM,GAAG,UAAU,CAAC,SAAS;AACrC,QAAO,MAAM;AACb,SAAQ,MAAM,GAAG,EAAE,CAAC,YAAY,GAAG,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY;AACjF;;AAEA;AACA,OAAM,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,IAAI,EAAE;SAC3E,IAAI,CAAC,oBAAoB,EAAE;AACnC,SAAQ,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,YAAY;AACzD,SAAQ,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,SAAS;AACnD;SACQ,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE;WAC7C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;AACnD,WAAU,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC9B;AACA;AACA;AACA,IAAG,EAAE;KACD,GAAG,EAAE,iBAAiB;KACtB,KAAK,EAAE,SAAS,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE;OAC7C,IAAI,CAAC,EAAE,EAAE;AACf,SAAQ,OAAO,CAAC;AAChB;;AAEA,OAAM,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;AAC/F;AACA,IAAG,EAAE;KACD,GAAG,EAAE,sBAAsB;AAC/B,KAAI,KAAK,EAAE,SAAS,oBAAoB,CAAC,EAAE,EAAE;OACvC,IAAI,CAAC,EAAE,EAAE;AACf,SAAQ,OAAO,CAAC;AAChB;AACA,OAAM,OAAO,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,YAAY,CAAC;AACtE;AACA,IAAG,EAAE;KACD,GAAG,EAAE,QAAQ;AACjB,KAAI,KAAK,EAAE,SAAS,MAAM,GAAG;OACvB,IAAI,MAAM,GAAG,IAAI;;OAEjB,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEpD,OAAU,IAAA,QAAQ,GAAG,WAAW,CAAC,QAAQ;AACzC,WAAU,OAAO,GAAG,WAAW,CAAC,OAAO;AACvC,WAAU,OAAO,GAAG,WAAW,CAAC,OAAO;AACvC,WAAwB,WAAW,CAAC,WAAW;AAC/C,eAAU,SAAS,GAAG,WAAW,CAAC,SAAS;AAC3C,WAAU,MAAM,GAAG,WAAW,CAAC,MAAM;AACrC,WAAqB,WAAW,CAAC,QAAQ;AACzC,WAAsB,WAAW,CAAC,SAAS;AAC3C,eAAU,GAAG,GAAG,WAAW,CAAC,GAAG;AAC/B,WAAsB,WAAW,CAAC,SAAS;AAC3C,WAAuB,WAAW,CAAC,UAAU;AAC7C,WAAsB,WAAW,CAAC,SAAS;AAC3C,WAA4B,WAAW,CAAC,eAAe;AACvD,eAAU,KAAK,GAAG,wBAAwB,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,CAAC;;AAE3N,OAAM,KAAK,CAAC,GAAG,GAAG,UAAU,IAAI,EAAE;AAClC,SAAQ,MAAM,CAAC,eAAe,GAAG,IAAI;SAC7B,IAAI,GAAG,EAAE;WACP,GAAG,CAAC,IAAI,CAAC;AACnB;QACO;;AAEP,OAAM,IAAI,aAAa,GAAG,CAAC,QAAQ,CAAC;OAC9B,IAAI,OAAO,EAAE;SACX,IAAI,MAAM,EAAE;AACpB,WAAU,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AAChF,UAAS,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;AACvC,WAAU,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACxG;AACA;AACA,OAAM,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC;AACzE;AACA,IAAG,CAAC,CAAC;;AAEL,GAAE,OAAO,cAAc;AACvB,EAAC,CAAC,MAAM,CAAC,SAAS,CAAC;;CAEnB,cAAc,CAAC,SAAS,GAAG;GACzB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU;AAC/C,GAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;AACnC,GAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;AACnC,GAAE,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;AACvC,GAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;AACrC,GAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;GAChC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU;AAC/C,GAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;AACvC,GAAE,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;AAC/B,GAAE,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;AAC3C,GAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;AACvC,GAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;AACtC,GAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC;EAChC;CACD,cAAc,CAAC,YAAY,GAAG;GAC5B,OAAO,EAAE,KAAK;GACd,OAAO,EAAE,KAAK;GACd,WAAW,EAAE,IAAI;GACjB,SAAS,EAAE,CAAC;GACZ,GAAG,EAAE,IAAI;GACT,SAAS,EAAE,GAAG;GACd,SAAS,EAAE,IAAI;GACf,SAAS,EAAE,KAAK;GAChB,UAAU,EAAE,KAAK;GACjB,MAAM,EAAE,IAAI;AACd,GAAE,eAAe,EAAE;EAClB;AACD,CAAA,OAAA,CAAA,OAAA,GAAkB,cAAc;CAChC,MAAiB,CAAA,OAAA,GAAA,OAAO,CAAC,SAAS,CAAC,CAAA;;;;;ACzSnC,IAAA,qBAAc,GAAGF;;ACEjB,MAAM,CAAC,cAAc,CAAC,GAAO,EAAE,YAAY,EAAE;AAC7C,EAAE,KAAK,EAAE;AACT,CAAC,CAAC;AACF,IAAA,QAAA,GAAA,GAAA,CAAA,OAAe,GAAG,SAAS;;AAE3B,IAAI,YAAY,GAAG,YAAY,EAAE,SAAS,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,IAAI,OAAO,IAAI,UAAU,EAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,UAAU,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,IAAI,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE;;AAEnjB,IAAI,MAAM,EAAE,MAAM;;AAElB,IAAI,MAAM,GAAGA,CAAgB;;AAE7B,IAAI,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC;;AAE5C,IAAI,UAAU,GAAGE,gBAAqB;;AAEtC,IAAI,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC;;AAEpD,IAAI,OAAO,GAAG,UAAoB;;AAElC,IAAI,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC;;AAE9C,IAAI,sBAAsB,GAAGC,qBAAkC;;AAE/D,IAAI,uBAAuB,GAAG,sBAAsB,CAAC,sBAAsB,CAAC;;AAE5E,SAAS,sBAAsB,CAAC,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;;AAE7F,SAAS,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC;;AAE1N,SAAS,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,YAAY,WAAW,CAAC,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC,EAAE;;AAEvJ,SAAS,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,cAAc,CAAC,2DAA2D,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;;AAE9O,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,0DAA0D,GAAG,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;;AAE5e,IAAI,uBAAuB,IAAI,MAAM,GAAG,MAAM,GAAG,UAAU,UAAU,EAAE;AACvE,EAAE,SAAS,CAAC,uBAAuB,EAAE,UAAU,CAAC;;AAEhD,EAAE,SAAS,uBAAuB,GAAG;AACrC,IAAI,IAAI,IAAI;;AAEZ,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI;;AAE1B,IAAI,eAAe,CAAC,IAAI,EAAE,uBAAuB,CAAC;;AAElD,IAAI,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;AACzF,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;AAClC;;AAEA,IAAI,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,GAAG,0BAA0B,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,uBAAuB,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG,UAAU,SAAS,EAAE;AAC/P,MAAM,KAAK,CAAC,gBAAgB,GAAG,SAAS;AACxC,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,YAAY;AACrC,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE;AAClC,QAAQ,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;AACnC;AACA,KAAK,EAAE,KAAK,CAAC,WAAW,GAAG,YAAY;AACvC,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE;AAClC,QAAQ,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AACrC;AACA,KAAK,EAAE,KAAK,CAAC,iBAAiB,GAAG,YAAY;AAC7C,MAAM,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK;AACnC,UAAU,MAAM,GAAG,WAAW,CAAC,MAAM;AACrC,UAAU,KAAK,GAAG,WAAW,CAAC,KAAK;AACnC,UAAU,QAAQ,GAAG,WAAW,CAAC,QAAQ;AACzC,UAAU,QAAQ,GAAG,WAAW,CAAC,QAAQ;;AAEzC,MAAM,IAAI,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC3C,QAAQ,SAAS,EAAE,KAAK,CAAC,gBAAgB;AACzC,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,QAAQ,EAAE;AAClB,OAAO,CAAC;;AAER,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;;AAE3B,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,QAAQ,QAAQ,CAAC,IAAI,EAAE;AACvB;;AAEA,MAAM,KAAK,CAAC,QAAQ,CAAC,YAAY;AACjC,QAAQ,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACrC,OAAO,CAAC;AACR,KAAK,EAAE,KAAK,CAAC,EAAE,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC;AACtD;;AAEA,EAAE,YAAY,CAAC,uBAAuB,EAAE,CAAC;AACzC,IAAI,GAAG,EAAE,mBAAmB;AAC5B,IAAI,KAAK,EAAE,SAAS,iBAAiB,GAAG;AACxC,MAAM,IAAI,CAAC,iBAAiB,EAAE;AAC9B;AACA,GAAG,EAAE;AACL,IAAI,GAAG,EAAE,oBAAoB;AAC7B,IAAI,KAAK,EAAE,SAAS,kBAAkB,CAAC,SAAS,EAAE;AAClD,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;AACxC,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;;;AAGxC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACpE,QAAQ;AACR;;AAEA,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAClE,QAAQ,OAAO,QAAQ,CAAC,IAAI,EAAE;AAC9B;;AAEA,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;AACzD,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AAC7B,UAAU,OAAO,QAAQ,CAAC,IAAI,EAAE;AAChC,SAAS,MAAM;AACf,UAAU,OAAO,QAAQ,CAAC,MAAM,EAAE;AAClC;AACA;AACA;AACA,GAAG,EAAE;AACL,IAAI,GAAG,EAAE,sBAAsB;AAC/B,IAAI,KAAK,EAAE,SAAS,oBAAoB,GAAG;AAC3C,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC;AACA;AACA,GAAG,EAAE;AACL,IAAI,GAAG,EAAE,QAAQ;AACjB,IAAI,KAAK,EAAE,SAAS,MAAM,GAAG;AAC7B,MAAU,IAAA,MAAM,GAAG,IAAI,CAAC,KAAK;AAC7B,UAAU,QAAQ,GAAG,MAAM,CAAC,QAAQ;AACpC,UAAU,SAAS,GAAG,MAAM,CAAC,SAAS;AACtC,UAAU,KAAK,GAAG,MAAM,CAAC,KAAK;AAC9B,UAAiB,MAAM,CAAC,IAAI;AAC5B,UAAmB,MAAM,CAAC,MAAM;AAChC,UAAqB,MAAM,CAAC,QAAQ;AACpC,UAAkB,MAAM,CAAC,KAAK;AAC9B,cAAU,KAAK,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC;;AAE5H,MAAM,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa;AAC1C,QAAQ,uBAAuB,CAAC,OAAO;AACvC,QAAQ,KAAK;AACb,QAAQ,OAAO,CAAC,OAAO,CAAC,aAAa;AACrC,UAAU,KAAK;AACf,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3E,UAAU;AACV;AACA,OAAO;AACP;AACA,GAAG,CAAC,CAAC;;AAEL,EAAE,OAAO,uBAAuB;AAChC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG;AACxC,EAAE,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU;AAC/E,EAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;AACvC,EAAE,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;AACvC,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;AAChC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;AACpC,EAAE,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;AACpC,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK;AAClC,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC,EAAE,MAAM,CAAC,YAAY,GAAG;AACzB,EAAE,SAAS,EAAE,EAAE;AACf,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,IAAI,EAAE,KAAK;AACb,EAAE,MAAM,EAAE,aAAa;AACvB,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxH,EAAE,KAAK,EAAE;AACT,CAAC,EAAE,MAAM,CAAC;AACV,QAAA,GAAA,GAAA,CAAA,OAAe,GAAG,uBAAuB;;;;;AC/IzC,IAAQC,IAAI,GAAeC,QAAQ,CAA3BD,IAAI;EAAEE,QAAQ,GAAKD,QAAQ,CAArBC,QAAQ;AAEtB,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAApN,IAAA,EAOhB;AAAA,EAAA,IAAAqN,YAAA,GAAArN,IAAA,CANJsN,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,YAAA;IAAAE,aAAA,GAAAvN,IAAA,CACfwN,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG/F,KAAAA,CAAAA,GAAAA,cAAI,GAAA+F,aAAA;IACfE,GAAG,GAAAzN,IAAA,CAAHyN,GAAG;IACHC,MAAM,GAAA1N,IAAA,CAAN0N,MAAM;IAAAC,qBAAA,GAAA3N,IAAA,CACN4N,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAGnG,KAAAA,CAAAA,GAAAA,cAAI,GAAAmG,qBAAA;IAAAE,qBAAA,GAAA7N,IAAA,CACvB8N,yBAAyB;AAAzBA,IAAAA,yBAAyB,GAAAD,qBAAA,KAAGrG,KAAAA,CAAAA,GAAAA,cAAI,GAAAqG,qBAAA;AAEhC,EAAA,IAAA9F,eAAA,GAAcC,2BAAc,EAAE;IAAtB7H,CAAC,GAAA4H,eAAA,CAAD5H,CAAC;EACT,IAAAuC,SAAA,GAAoDC,UAAQ,CAAC;AAC3DoL,MAAAA,MAAM,EAAE,KAAK;AACbzD,MAAAA,QAAQ,EAAE;AACZ,KAAC,CAAC;IAAAzH,UAAA,GAAAC,cAAA,CAAAJ,SAAA,EAAA,CAAA,CAAA;AAHKsL,IAAAA,kBAAkB,GAAAnL,UAAA,CAAA,CAAA,CAAA;AAAEoL,IAAAA,qBAAqB,GAAApL,UAAA,CAAA,CAAA,CAAA;AAKhD,EAAA,IAAMqL,mBAAmB,GAAGzF,wBAAW,CAACC,qBAAqB,KAAKC,iBAAW;AAE7E,EAAA,IAAAwF,qBAAA,GACEnC,oBAAoB,CAACoC,0BAAkB,CAAC;IADlCC,SAAS,GAAAF,qBAAA,CAATE,SAAS;IAAUC,UAAU,GAAAH,qBAAA,CAAlBjG,MAAM;AAGzB,EAAA,IAAMqG,YAAY,GAAGC,aAAW,CAAC,YAAM;AACrCF,IAAAA,UAAU,CAACN,kBAAkB,CAAC1D,QAAQ,EAAE;MACtChC,SAAS,EAAE,SAAXA,SAASA,GAAA;AAAA,QAAA,OAAQ2F,qBAAqB,CAAC;AAAEF,UAAAA,MAAM,EAAE,KAAK;AAAEzD,UAAAA,QAAQ,EAAE;AAAG,SAAC,CAAC;AAAA;AACzE,KAAC,CAAC;AACJ,GAAC,EAAE,CAAC0D,kBAAkB,CAAC1D,QAAQ,CAAC,CAAC;EAEjC,IAAMmE,MAAM,gBACVvN,cAAA,CAAA,KAAA,EAAA;AAAKF,IAAAA,SAAS,EAAC,qBAAqB;AAAAC,IAAAA,QAAA,eAClCC,cAAA,CAACwN,OAAO,EAAE,EAAA;AAAC,GACR,CACN;AAED,EAAA,oBACE3N,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,4EAA4E;IAAAC,QAAA,EAAA,cACzFC,cAAA,CAACyN,QAAuB,EAAA;AAChBrB,MAAAA,OAAO,EAAPA,OAAO;AAAEE,MAAAA,QAAQ,EAARA,QAAQ;MACvBoB,IAAI,EAAA,IAAA;MACJC,QAAQ,EAAA,IAAA;AACR7N,MAAAA,SAAS,EAAC,QAAQ;AAClB8N,MAAAA,MAAM,EAAEL,MAAO;AACfM,MAAAA,KAAK,EAAEC,+BAAwB;AAC/B9F,MAAAA,KAAK,EAAE+F,+BAAwB;AAC/BC,MAAAA,SAAS,EAAE,KAAM;MAAAjO,QAAA,EAEhByM,MAAM,CAACpB,GAAG,CAAC,UAACvF,KAAK,EAAEoI,KAAK,EAAA;AAAA,QAAA,IAAAC,WAAA,EAAAC,WAAA,EAAAC,YAAA;AAAA,QAAA,oBACvBpO,cAAA,CAAA,KAAA,EAAA;AAAKF,UAAAA,SAAS,EAAC,sCAAsC;AAAAC,UAAAA,QAAA,eACnDC,cAAA,CAAA,KAAA,EAAA;AACEF,YAAAA,SAAS,EAAC,iBAAiB;AAC3BkI,YAAAA,KAAK,EAAE;cACLqG,aAAa,EAAA,EAAA,CAAAtQ,MAAA,CAAM8H,KAAK,CAACjG,MAAM,GAAGiG,KAAK,CAAClG,KAAK,GAAI,GAAG,EAAA,GAAA;aACpD;AAAAI,YAAAA,QAAA,eAEFF,eAAA,CAAA,KAAA,EAAA;AACEC,cAAAA,SAAS,EAAC,uEAAuE;AACjF,cAAA,aAAA,EAAY,oBAAoB;AAChCmI,cAAAA,EAAE,kBAAAlK,MAAA,CAAkB8H,KAAK,CAACoC,EAAE,CAAG;AAAAlI,cAAAA,QAAA,EAE9BwM,CAAAA,GAAG,KAAK+B,YAAI,CAAC,CAAC,CAAC,CAACC,GAAG,iBAClB1O,eAAA,CAAA2O,mBAAA,EAAA;AAAAzO,gBAAAA,QAAA,gBACEC,cAAA,CAAA,KAAA,EAAA;kBACE,aAAAjC,EAAAA,qBAAAA,CAAAA,MAAA,CAAmCkQ,KAAK,CAAG;AAC3C3F,kBAAAA,GAAG,EAAEzC,KAAK,KAALA,IAAAA,IAAAA,KAAK,gBAAAqI,WAAA,GAALrI,KAAK,CAAE4I,IAAI,MAAAP,IAAAA,IAAAA,WAAA,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAaQ,OAAQ;kBAC1BzN,OAAO,EAAE,SAATA,OAAOA,GAAA;oBAAA,OAAQ2L,yBAAyB,CAAC/G,KAAK,CAAC;AAAA;iBAChD,CAAC,eACFhG,eAAA,CAAA,GAAA,EAAA;AACEC,kBAAAA,SAAS,EAAC,6GAA6G;AACvH6O,kBAAAA,IAAI,2BAAA5Q,MAAA,CAA2B8H,KAAK,KAALA,IAAAA,IAAAA,KAAK,gBAAAsI,WAAA,GAALtI,KAAK,CAAE+I,IAAI,MAAAT,IAAAA,IAAAA,WAAA,uBAAXA,WAAA,CAAaU,QAAQ,CAAG;AACvDC,kBAAAA,GAAG,EAAC,YAAY;AAChBhJ,kBAAAA,MAAM,EAAC,QAAQ;kBAAA/F,QAAA,EAAA,CAEd8F,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,IAAA,CAAAuI,YAAA,GAALvI,KAAK,CAAE+I,IAAI,MAAAR,IAAAA,IAAAA,YAAA,uBAAXA,YAAA,CAAaW,IAAI,EACjB,KAAK,EAAC,GAAC,EAAC9P,CAAC,CAAC,oCAAoC,CAAC;AAAA,iBAC/C,CAAC;AAAA,eACJ,CACH,EACAsN,GAAG,KAAK+B,YAAI,CAAC,CAAC,CAAC,CAACC,GAAG,iBAClB1O,eAAA,CAAA2O,mBAAA,EAAA;gBAAAzO,QAAA,EAAA,CACGiP,mBAAa,CAACC,+BAAqB,CAAC,IACnCjC,mBAAmB,iBACjBhN,cAAA,CAACgM,QAAQ,EAAA;AACPkD,kBAAAA,UAAU,EAAC,OAAO;AAClBC,kBAAAA,WAAW,EAAC,UAAU;kBACtB,aAAApR,EAAAA,8BAAAA,CAAAA,MAAA,CAA4CkQ,KAAK,CAAG;AACpDpG,kBAAAA,IAAI,EAAEuH,cAAe;AACrBC,kBAAAA,WAAW,EAAE;oBACXvP,SAAS;AACP;AACA,oBAAA;mBACF;kBAAAC,QAAA,eAEFC,cAAA,CAAC+L,IAAI,EAAA;AAAAhM,oBAAAA,QAAA,eACHC,cAAA,CAACiM,QAAQ,CAAClL,MAAM,EAAA;AACd,sBAAA,aAAA,EAAY,4BAA4B;sBACxCE,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,wBAAA,OACL8L,qBAAqB,CAAC;AACpBF,0BAAAA,MAAM,EAAE,IAAI;AACZzD,0BAAAA,QAAQ,EAAE,CAAC,CAAAvD,KAAK,KAALA,IAAAA,IAAAA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAE2F,MAAM,KAAI3F,KAAK,CAACoC,EAAE;AACtC,yBAAC,CAAC;uBACH;sBAAAlI,QAAA,EAEAd,CAAC,CACA,8CACF;qBACe;mBACb;iBACE,CACX,eACHe,cAAA,CAAA,KAAA,EAAA;kBACE,aAAAjC,EAAAA,oBAAAA,CAAAA,MAAA,CAAkCkQ,KAAK,CAAG;AAC1C3F,kBAAAA,GAAG,EAAEzC,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEvI,GAAI;kBAChB2D,OAAO,EAAE,SAATA,OAAOA,GAAA;oBAAA,OAAQyL,gBAAgB,CAAC7G,KAAK,CAAC;AAAA;AAAC,iBACxC,CAAC;AAAA,eACF,CACH;aACE;WACF;SAtEoDA,EAAAA,KAAK,CAACoC,EAuE5D,CAAC;OACP;AAAC,KACqB,CAAC,eAC1BjI,cAAA,CAACsP,KAAK,EAAA;MACJzC,MAAM,EAAEC,kBAAkB,CAACD,MAAO;AAClC0C,MAAAA,YAAY,EAAEpC,SAAU;AACxBqC,MAAAA,OAAO,EAAEvQ,CAAC,CAAC,+CAA+C,CAAE;AAC5DwQ,MAAAA,iBAAiB,EAAExQ,CAAC,CAAC,8CAA8C,CAAE;AACrEyQ,MAAAA,KAAK,EAAEzQ,CAAC,CAAC,6CAA6C,CAAE;MACxD0Q,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,QAAA,OAAQ5C,qBAAqB,CAAC;AAAEF,UAAAA,MAAM,EAAE,KAAK;AAAEzD,UAAAA,QAAQ,EAAE;AAAG,SAAC,CAAC;OAAC;AACtEwG,MAAAA,QAAQ,EAAEvC;AAAa,KACxB,CAAC;AAAA,GACC,CAAC;AAEV,CAAC;;ACjJD,IAAMwC,MAAM,GAAG,SAATA,MAAMA,CAAA/Q,IAAA,EAA6C;AAAA,EAAA,IAAvCgR,cAAc,GAAAhR,IAAA,CAAdgR,cAAc;IAAEpD,gBAAgB,GAAA5N,IAAA,CAAhB4N,gBAAgB;AAChD,EAAA,IAAA7F,eAAA,GAAcC,2BAAc,EAAE;IAAtB7H,CAAC,GAAA4H,eAAA,CAAD5H,CAAC;EAET,IAAA8Q,eAAA,GAMIzG,cAAc,CAAC;AACjBR,MAAAA,UAAU,EAAEgH,cAAc;AAC1B9G,MAAAA,GAAG,EAAEoB,uBAAe;AACpB9M,MAAAA,GAAG,EAAE0S;AACP,KAAC,CAAC;IATAC,aAAa,GAAAF,eAAA,CAAbE,aAAa;IACbC,WAAW,GAAAH,eAAA,CAAXG,WAAW;IAAAC,oBAAA,GAAAJ,eAAA,CACXzF,IAAI;AAAA8F,IAAAA,qBAAA,GAAAD,oBAAA,KAAA,KAAA,CAAA,GAAqB,EAAE,GAAAA,oBAAA;IAAAE,qBAAA,GAAAD,qBAAA,CAAnB7F,OAAO;AAAPA,IAAAA,OAAO,GAAA8F,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IACpBC,SAAS,GAAAP,eAAA,CAATO,SAAS;IACTC,OAAO,GAAAR,eAAA,CAAPQ,OAAO;AAOT,EAAA,IAAIA,OAAO,EAAE;IACX,oBACEvQ,cAAA,CAAC4I,UAAU,EAAA;AAAC9I,MAAAA,SAAS,EAAC,0BAA0B;AAACkI,MAAAA,KAAK,EAAC,OAAO;MAAAjI,QAAA,EAC3Dd,CAAC,CAAC,0CAA0C;AAAC,KACpC,CAAC;AAEjB;AAEA,EAAA,IAAIqR,SAAS,EAAE;AACb,IAAA,oBACEtQ,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,qBAAqB;AAAAC,MAAAA,QAAA,eAClCC,cAAA,CAACwN,OAAO,EAAE,EAAA;AAAC,KACR,CAAC;AAEV;EAEA,oBACEgD,eAAA,CAACtE,gBAAgB,EAAA;AACTQ,IAAAA,gBAAgB,EAAhBA,gBAAgB;AACtBN,IAAAA,OAAO,EAAE8D,WAAY;AACrB1D,IAAAA,MAAM,EAAEjC,OAAQ;AAChBgE,IAAAA,GAAG,EAAEuB,cAAe;AACpBxD,IAAAA,QAAQ,EAAE2D,aAAc;AACxB1D,IAAAA,GAAG,EAAE+B,YAAI,CAAC,CAAC,CAAC,CAACC;AAAI,GAClB,CAAC;AAEN,CAAC;;AChDD,IAAMkC,gBAAgB,GAAGrS,KAAK,CAACsS,MAAM,EAAE;AAEvC,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA7R,IAAA,EAAA;AAAA,EAAA,IAAM8R,MAAM,GAAA9R,IAAA,CAAN8R,MAAM;IAAEC,KAAK,GAAA/R,IAAA,CAAL+R,KAAK;AAAA,EAAA,OAC3CzS,KAAK,CAAC6K,GAAG,CAAC,4CAA4C,EAAE;AACtDC,IAAAA,MAAM,EAAE;AAAEH,MAAAA,IAAI,EAAE6H,MAAM;AAAEE,MAAAA,QAAQ,EAAE,EAAE;MAAED,KAAK,EAAEA,KAAK,IAAI;AAAS;AACjE,GAAC,CAAC;AAAA,CAAA;AAEJ,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIzT,GAAG,EAAA;AAAA,EAAA,IAAE0T,MAAM,GAAAzH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,EAAA,OACxCkH,gBAAgB,CAACxH,GAAG,CAAC3L,GAAG,EAAE0T,MAAM,CAAC;AAAA,CAAA;AAEnC,IAAMC,WAAW,GAAG;AAAEN,EAAAA,oBAAoB,EAApBA,oBAAoB;AAAEI,EAAAA,gBAAgB,EAAhBA;AAAiB,CAAC;;;;ACN9D,IAAQG,aAAa,GAAKtH,gBAAU,CAA5BsH,aAAa;AAErB,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAArS,IAAA,EAAA;AAAA,EAAA,IAAM+R,OAAK,GAAA/R,IAAA,CAAL+R,KAAK;AAAA,EAAA,IAAIrS,OAAO,GAAA+K,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;EAAA,OACrDG,2BAAgB,CAAAhL,eAAA,CAAA;IACdiL,QAAQ,EAAE,CAACuH,aAAa,EAAE;AAAEL,MAAAA,KAAK,EAALA;AAAM,KAAC,CAAC;AACpC/G,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAAzI,KAAA,EAAA;AAAA,MAAA,IAAA0I,eAAA,GAAA1I,KAAA,CAAK2I,SAAS;AAATA,QAAAA,SAAS,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,eAAA;MAAA,OACvBkH,WAAW,CAACN,oBAAoB,CAAC;AAAEC,QAAAA,MAAM,EAAE5G,SAAS;AAAE6G,QAAAA,KAAK,EAALA;AAAM,OAAC,CAAC;AAAA,KAAA;AAChElG,IAAAA,gBAAgB,EAAE,CAAC;IACnBV,gBAAgB,EAAE,SAAlBA,gBAAgBA,CAAGC,QAAQ,EAAEjM,CAAC,EAAEkM,aAAa,EAAA;MAAA,OAC3CA,aAAa,GAAGD,QAAQ,CAACkH,UAAU,GAAGjH,aAAa,GAAG,CAAC,GAAG,IAAI;AAAA,KAAA;AAChEE,IAAAA,MAAM,EAAE,SAARA,MAAMA,CAAEC,IAAI,EAAI;AACd,MAAA,IAAMC,OAAO,GAAGD,IAAI,CAACE,KAAK,CAACC,OAAO,CAAC4G,UAAI,CAAC,SAAS,CAAC,CAAC;MAEnD,OAAO;AAAE9G,QAAAA,OAAO,EAAPA;OAAS;KACnB;AACDK,IAAAA,SAAS,EAAE0G,yBAAmB;AAC9BC,IAAAA,eAAe,EAAEC;GACdhT,EAAAA,OAAO,CACX,CAAC;AAAA,CAAA;;ACTJ,IAAMiT,eAAe,GAAG,SAAlBA,eAAeA,CAAA3S,IAAA,EAKf;AAAA,EAAA,IAJJgR,cAAc,GAAAhR,IAAA,CAAdgR,cAAc;IACdpD,gBAAgB,GAAA5N,IAAA,CAAhB4N,gBAAgB;IAChBgF,cAAc,GAAA5S,IAAA,CAAd4S,cAAc;IACdC,YAAY,GAAA7S,IAAA,CAAZ6S,YAAY;EAEZ,IAAAC,iBAAA,GAAuBC,iCAAgB,CAAC;AACtCC,MAAAA,gBAAgB,EAAEpF,gBAAgB;AAClCgF,MAAAA,cAAc,EAAdA;AACF,KAAC,CAAC;IAHMK,UAAU,GAAAH,iBAAA,CAAVG,UAAU;AAKlB,EAAA,IAAMnF,yBAAyB,gBAAA,YAAA;IAAA,IAAAvL,KAAA,GAAA2Q,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAMtM,KAAK,EAAA;AAAA,MAAA,IAAAqI,WAAA,EAAAkE,QAAA,EAAAC,IAAA;AAAA,MAAA,OAAAJ,mBAAA,CAAAK,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAAAF,YAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;YAEzCf,cAAc,CAAC,IAAI,CAAC;AAACc,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,YAAA,OACEzB,WAAW,CAACF,gBAAgB,CAAA7C,CAAAA,WAAA,GACjDrI,KAAK,CAAC4I,IAAI,MAAA,IAAA,IAAAP,WAAA,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAYQ,OAAO,EACnBiE,uCACF,CAAC;AAAA,UAAA,KAAA,CAAA;YAHKP,QAAQ,GAAAI,QAAA,CAAAI,IAAA;YAKRP,IAAI,GAAG,IAAIQ,IAAI,CAAC,CAACT,QAAQ,CAAC9H,IAAI,CAAC,EAAEwI,6BAAqB,EAAE;AAC5DnS,cAAAA,IAAI,EAAEyR,QAAQ,CAAC9H,IAAI,CAAC3J;AACtB,aAAC,CAAC;YAEFoR,UAAU,CAACM,IAAI,CAAC;AAACG,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA,KAAA,CAAA;AAAAF,YAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;YAAAD,QAAA,CAAAO,EAAA,GAAAP,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAEjBQ,YAAAA,MAAM,CAACC,KAAK,CAAAT,QAAA,CAAAO,EAAM,CAAC;AACnBpB,YAAAA,YAAY,CAACrD,YAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC;YACzBmD,cAAc,CAAC,KAAK,CAAC;AAAC,UAAA,KAAA,EAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAc,QAAA,CAAAU,IAAA,EAAA;AAAA;AAAA,OAAA,EAAAf,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;KAEzB,CAAA,CAAA;IAAA,OAlBKvF,SAAAA,yBAAyBA,CAAAuG,EAAA,EAAA;AAAA,MAAA,OAAA9R,KAAA,CAAA+R,KAAA,CAAA,IAAA,EAAA7J,SAAA,CAAA;AAAA,KAAA;GAkB9B,EAAA;AAED,EAAA,IAAA1C,eAAA,GAAcC,2BAAc,EAAE;IAAtB7H,CAAC,GAAA4H,eAAA,CAAD5H,CAAC;EAET,IAAAoU,qBAAA,GAMIlC,sBAAsB,CAAC;AAAEN,MAAAA,KAAK,EAAEf;AAAe,KAAC,CAAC;IALnDG,aAAa,GAAAoD,qBAAA,CAAbpD,aAAa;IACbC,WAAW,GAAAmD,qBAAA,CAAXnD,WAAW;IAAAoD,sBAAA,GAAAD,qBAAA,CACX/I,IAAI;AAAAiJ,IAAAA,sBAAA,GAAAD,sBAAA,KAAA,KAAA,CAAA,GAAqB,EAAE,GAAAA,sBAAA;IAAAE,sBAAA,GAAAD,sBAAA,CAAnBhJ,OAAO;AAAPA,IAAAA,OAAO,GAAAiJ,sBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,sBAAA;IACpBjD,OAAO,GAAA8C,qBAAA,CAAP9C,OAAO;IACPD,SAAS,GAAA+C,qBAAA,CAAT/C,SAAS;AAGX,EAAA,IAAIC,OAAO,EAAE;IACX,oBACEvQ,cAAA,CAAC4I,UAAU,EAAA;AAAC9I,MAAAA,SAAS,EAAC,0BAA0B;AAACkI,MAAAA,KAAK,EAAC,OAAO;MAAAjI,QAAA,EAC3Dd,CAAC,CAAC,0CAA0C;AAAC,KACpC,CAAC;AAEjB;AAEA,EAAA,IAAIqR,SAAS,EAAE;AACb,IAAA,oBACEtQ,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,qBAAqB;AAAAC,MAAAA,QAAA,eAClCC,cAAA,CAACwN,OAAO,EAAE,EAAA;AAAC,KACR,CAAC;AAEV;EAEA,oBACEgD,eAAA,CAACtE,gBAAgB,EAAA;AACT4D,IAAAA,cAAc,EAAdA,cAAc;AAAElD,IAAAA,yBAAyB,EAAzBA,yBAAyB;AAC/CR,IAAAA,OAAO,EAAE8D,WAAY;AACrB1D,IAAAA,MAAM,EAAEjC,OAAQ;AAChBgE,IAAAA,GAAG,EAAEuB,cAAe;AACpBxD,IAAAA,QAAQ,EAAE2D,aAAc;AACxB1D,IAAAA,GAAG,EAAE+B,YAAI,CAAC,CAAC,CAAC,CAACC;AAAI,GAClB,CAAC;AAEN,CAAC;;ACtED,IAAMkF,YAAY,GAAG,SAAfA,YAAYA,CAAA3U,IAAA,EAKZ;AAAA,EAAA,IAJJ4N,gBAAgB,GAAA5N,IAAA,CAAhB4N,gBAAgB;IAChBH,GAAG,GAAAzN,IAAA,CAAHyN,GAAG;IACHmF,cAAc,GAAA5S,IAAA,CAAd4S,cAAc;IACdC,YAAY,GAAA7S,IAAA,CAAZ6S,YAAY;AAEZ,EAAA,IAAAnQ,SAAA,GAA0BC,UAAQ,CAAC,EAAE,CAAC;IAAAE,UAAA,GAAAC,cAAA,CAAAJ,SAAA,EAAA,CAAA,CAAA;AAA/BqP,IAAAA,KAAK,GAAAlP,UAAA,CAAA,CAAA,CAAA;AAAE+R,IAAAA,QAAQ,GAAA/R,UAAA,CAAA,CAAA,CAAA;AAEtB,EAAA,IAAAkF,eAAA,GAAcC,2BAAc,EAAE;IAAtB7H,CAAC,GAAA4H,eAAA,CAAD5H,CAAC;AAET,EAAA,IAAM6Q,cAAc,GAAG6D,sBAAW,CAAC9C,KAAK,EAAE,GAAG,CAAC;EAE9C,IAAM+C,gBAAgB,GAAGC,YAAM,CAACtH,GAAG,EAAE+B,YAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC,GAC7CtP,CAAC,CAAC,oDAAoD,CAAC,GACvDA,CAAC,CAAC,6CAA6C,CAAC;AAEpD6U,EAAAA,WAAS,CAAC,YAAM;IACdJ,QAAQ,CAAC,EAAE,CAAC;AACd,GAAC,EAAE,CAACnH,GAAG,CAAC,CAAC;AAET,EAAA,oBACE1M,eAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,uBAAuB;IAAAC,QAAA,EAAA,cACpCC,cAAA,CAACM,KAAK,EAAA;MACJyT,SAAS,EAAA,IAAA;AACTjU,MAAAA,SAAS,EAAC,MAAM;AAChB,MAAA,aAAA,EAAY,wCAAwC;AACpDiP,MAAAA,IAAI,EAAC,MAAM;AACXiF,MAAAA,WAAW,EAAEJ,gBAAiB;AAC9BhT,MAAAA,KAAK,EAAEiQ,KAAM;AACbzQ,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAAiB,KAAA,EAAA;AAAA,QAAA,IAAeT,KAAK,GAAAS,KAAA,CAAfyE,MAAM,CAAIlF,KAAK;QAAA,OAAS8S,QAAQ,CAAC9S,KAAK,CAAC;AAAA;AAAC,KACtD,CAAC,EACD2L,GAAG,KAAK+B,YAAI,CAAC,CAAC,CAAC,CAACC,GAAG,gBAClBvO,cAAA,CAAC6P,MAAM,EAAA;AAAOC,MAAAA,cAAc,EAAdA,cAAc;AAAEe,MAAAA,KAAK,EAALA,KAAK;AAAEnE,MAAAA,gBAAgB,EAAhBA;AAAgB,KAAK,CAAC,gBAE3D1M,cAAA,CAACiU,eAAQ,EAAA;AAELnE,MAAAA,cAAc,EAAdA,cAAc;AACde,MAAAA,KAAK,EAALA,KAAK;AACLc,MAAAA,YAAY,EAAZA,YAAY;AACZD,MAAAA,cAAc,EAAdA,cAAc;AACdhF,MAAAA,gBAAgB,EAAhBA;AAAgB,KAEnB,CACF;AAAA,GACE,CAAC;AAEV,CAAC;;;;AC5BD,IAAMwH,KAAK,GAAG,SAARA,KAAKA,CAAApV,IAAA,EAOL;AAAA,EAAA,IANJ+N,MAAM,GAAA/N,IAAA,CAAN+N,MAAM;IAAAsH,YAAA,GAAArV,IAAA,CACN6Q,OAAO;AAAPA,IAAAA,OAAO,GAAAwE,YAAA,KAAG7N,KAAAA,CAAAA,GAAAA,cAAI,GAAA6N,YAAA;IAAAC,qBAAA,GAAAtV,IAAA,CACdgT,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAsC,qBAAA,KAAG9N,KAAAA,CAAAA,GAAAA,cAAI,GAAA8N,qBAAA;IAAAC,iBAAA,GAAAvV,IAAA,CACvBwV,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,iBAAA;IAAA5N,qBAAA,GAAA3H,IAAA,CACjBqC,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAsF,qBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAC,qBAAA,GAAA5H,IAAA,CACrBsC,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAsF,qBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,qBAAA;EAErB,IAAAlF,SAAA,GAAkCC,UAAQ,CAAC6M,YAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC;IAAA5M,UAAA,GAAAC,cAAA,CAAAJ,SAAA,EAAA,CAAA,CAAA;AAAhD+S,IAAAA,SAAS,GAAA5S,UAAA,CAAA,CAAA,CAAA;AAAEgQ,IAAAA,YAAY,GAAAhQ,UAAA,CAAA,CAAA,CAAA;AAC9B,EAAA,IAAAI,UAAA,GAA0CN,UAAQ,CAAC,EAAE,CAAC;IAAAQ,UAAA,GAAAL,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAA/CyS,IAAAA,aAAa,GAAAvS,UAAA,CAAA,CAAA,CAAA;AAAEyK,IAAAA,gBAAgB,GAAAzK,UAAA,CAAA,CAAA,CAAA;AACtC,EAAA,IAAAE,UAAA,GAAsCV,UAAQ,CAAC,KAAK,CAAC;IAAAa,UAAA,GAAAV,cAAA,CAAAO,UAAA,EAAA,CAAA,CAAA;AAA9CsS,IAAAA,WAAW,GAAAnS,UAAA,CAAA,CAAA,CAAA;AAAEoP,IAAAA,cAAc,GAAApP,UAAA,CAAA,CAAA,CAAA;AAElC,EAAA,IAAAuE,eAAA,GAAcC,2BAAc,EAAE;IAAtB7H,CAAC,GAAA4H,eAAA,CAAD5H,CAAC;AAET,EAAA,IAAAyV,cAAA,GAA+BC,8BAAa,EAAE;IAA9BC,UAAU,GAAAF,cAAA,CAAlB1N,MAAM;AAEd,EAAA,IAAM6N,wBAAwB,GAAG5P,gBAAU,CACzC6P,6BAAqB,EACrBR,YACF,CAAC;AAED,EAAA,IAAMS,yBAAyB,GAC7BxN,wBAAW,CAACC,qBAAqB,KAAKC,iBAAW;AAEnD,EAAA,IAAMuN,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;AAC7BrF,IAAAA,OAAO,EAAE;IACTjD,gBAAgB,CAAC,EAAE,CAAC;GACrB;AAED,EAAA,IAAMrG,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAG4O,WAAW,EAAI;AAC7CC,IAAAA,gBAAgB,CAACD,WAAW,EAAE,IAAI,CAAC;AACnCD,IAAAA,gBAAgB,EAAE;GACnB;AAED,EAAA,IAAMG,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGtP,KAAK,EAAI;AACpC,IAAA,IAAIuP,sBAAK,CAACvP,KAAK,CAAC,EAAE;MAChBqP,gBAAgB,CAACrP,KAAK,CAAC;AACvBmP,MAAAA,gBAAgB,EAAE;AAElB,MAAA;AACF;AAEAD,IAAAA,yBAAyB,IAAIG,gBAAgB,CAACrP,KAAK,CAAC;IACpD6G,gBAAgB,CAAC7G,KAAK,CAAC;GACxB;AAED,EAAA,IAAMqP,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAID,WAAW,EAAwB;AAAA,IAAA,IAAtBI,SAAS,GAAA9L,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK;AACtD,IAAA,IAAIlC,kCAA4B,IAAI+N,sBAAK,CAACH,WAAW,CAAC,EAAE;AACtDnD,MAAAA,gBAAgB,CAAC;QACfxU,GAAG,EAAE2X,WAAW,CAAC3X,GAAG;QACpBkJ,QAAQ,EAAEyO,WAAW,CAACzO;AACxB,OAAC,CAAC;AACJ,KAAC,MAAM;AACL,MAAA,IAAM8O,eAAe,GAAG,SAAlBA,eAAeA,GAAA;QAAA,OAAU;AAC7BC,UAAAA,QAAQ,EAAEC,sCAAqB,CAACP,WAAW,CAAClG,IAAI,CAAC;UACjD0G,SAAS,EAAER,WAAW,CAACS,IAAI;UAC3BC,YAAY,EAAEV,WAAW,CAACW,QAAQ;UAClCC,QAAQ,EAAEZ,WAAW,CAACzJ,MAAM;AAC5BsK,UAAAA,QAAQ,EAAEb,WAAW;AACrBc,UAAAA,YAAY,EAAE;SACf;OAAC;AAEF,MAAA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;QAAA,OAAU;AAC/BT,UAAAA,QAAQ,EAAEC,sCAAqB,CAACP,WAAW,CAACM,QAAQ,CAAC;UACrDI,YAAY,EAAEV,WAAW,CAACgB,WAAW;UACrCR,SAAS,EAAER,WAAW,CAACiB,QAAQ;UAC/BL,QAAQ,EAAEZ,WAAW,CAACY,QAAQ;AAC9BC,UAAAA,QAAQ,EAAApX,aAAA,CAAAA,aAAA,CACHuW,EAAAA,EAAAA,WAAW,CAACa,QAAQ,CAAA,EAAA,EAAA,EAAA;AACvBxY,YAAAA,GAAG,EAAED,2BAA2B,CAAC4X,WAAW,CAAC3X,GAAG,CAAC;AACjD+X,YAAAA,SAAS,EAATA;WACD,CAAA;AACDU,UAAAA,YAAY,EAAE;SACf;OAAC;MAEF,IAAM5X,OAAO,GAAG4W,yBAAyB,GACrCiB,iBAAiB,EAAE,GACnBV,eAAe,EAAE;MAErBV,UAAU,CAACzW,OAAO,EAAE;AAClBiJ,QAAAA,SAAS,EAAE,SAAXA,SAASA,CAAEvB,KAAK,EAAI;AAClBiM,UAAAA,gBAAgB,CAAC;YACfxU,GAAG,EAAEuI,KAAK,CAACsQ,OAAO;YAClB3P,QAAQ,EAAEX,KAAK,CAACW;AAClB,WAAC,CAAC;SACH;QACD4P,OAAO,EAAEpD,MAAM,CAACC;AAClB,OAAC,CAAC;AACJ;GACD;EAED,IAAArB,iBAAA,GAAuBC,iCAAgB,CAAC;AACtCC,MAAAA,gBAAgB,EAAEqD,oBAAoB;AACtCzD,MAAAA,cAAc,EAAdA;AACF,KAAC,CAAC;IAHMK,UAAU,GAAAH,iBAAA,CAAVG,UAAU;EAKlB,IAAAsE,kBAAA,GAAsDC,yBAAiB,CAAC;AACtEhC,MAAAA,YAAY,EAAEO,wBAAwB;AACtC0B,MAAAA,MAAM,EAAExE;AACV,KAAC,CAAC;IAHMyE,YAAY,GAAAH,kBAAA,CAAZG,YAAY;IAAEC,aAAa,GAAAJ,kBAAA,CAAbI,aAAa;IAAEC,YAAY,GAAAL,kBAAA,CAAZK,YAAY;AAKjD5C,EAAAA,WAAS,CAAC,YAAM;AACdnC,IAAAA,YAAY,CAACrD,YAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC;AAC3B,GAAC,EAAE,CAAC1B,MAAM,CAAC,CAAC;AAEZ,EAAA,IAAM8J,aAAa,GAAG,SAAhBA,aAAaA,GAAS;IAC1B,IAAIpC,SAAS,KAAK,QAAQ,EAAE;AAC1B,MAAA,oBACEvU,cAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,gBAAgB;AAAAC,QAAAA,QAAA,eAC7BC,cAAA,CAAA,KAAA,EAAA;AAAKF,UAAAA,SAAS,EAAC,+BAA+B;UAAAC,QAAA,eAC5CC,cAAA,CAAC4W,yBAAiB,EAAA;AAChBtC,YAAAA,YAAY,EAAEO,wBAAyB;AACvC0B,YAAAA,MAAM,EAAExE;WACT;SACE;AAAC,OACH,CAAC;AAEV;IAEA,oBACE/R,cAAA,CAACyT,YAAY,EAAA;AACL9B,MAAAA,YAAY,EAAZA,YAAY;AAAED,MAAAA,cAAc,EAAdA,cAAc;AAAEhF,MAAAA,gBAAgB,EAAhBA,gBAAgB;AACpDH,MAAAA,GAAG,EAAEgI;AAAU,KAChB,CAAC;GAEL;EAED,oBACE1U,eAAA,CAACgX,YAAY,EAAA;AACLhK,IAAAA,MAAM,EAANA,MAAM;AACZ/M,IAAAA,SAAS,EAAC,WAAW;AACrB4V,IAAAA,IAAI,EAAC,OAAO;AACZ/F,IAAAA,OAAO,EAAEqF,gBAAiB;IAAAjV,QAAA,EAAA,CAEzB0U,WAAW,iBACVzU,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,+FAA+F;AAAAC,MAAAA,QAAA,eAC5GC,cAAA,CAACwN,OAAO,EAAE,EAAA;AAAC,KACR,CACN,EACAxM,oBAAY,CAACwT,aAAa,CAAC,IAAIkC,YAAY,iBAC1C1W,cAAA,CAAAtB,KAAAA,EAAAA,aAAA,CAAAA,aAAA,CAAA;AACEoB,MAAAA,SAAS,EAAC;KACN0W,EAAAA,YAAY,EAAE,CAAA,EAAA,EAAA,EAAA;MAAAzW,QAAA,eAElBC,cAAA,CAAC4I,UAAU,EAAA;QAAA7I,QAAA,EAAEd,CAAC,CAAC,oCAAoC;OAAc;KAC9D,CAAA,CACN,EACA,CAAC+B,oBAAY,CAACwT,aAAa,CAAC,gBAC3BxU,cAAA,CAACkG,WAAW,EAAA;AACJ9E,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAAED,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEkF,MAAAA,uBAAuB,EAAvBA,uBAAuB;MACjEF,WAAW,EAAE,SAAbA,WAAWA,GAAA;AAAA,QAAA,OAAQuG,gBAAgB,CAAC,EAAE,CAAC;OAAC;AACxC7G,MAAAA,KAAK,EAAE2O,aAAc;AACrBhO,MAAAA,QAAQ,EAAEgO,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAEhO;AAAS,KACnC,CAAC,gBAEF3G,eAAA,CAAAnB,KAAAA,EAAAA,aAAA,CAAAA,aAAA,CAAA;AACEoB,MAAAA,SAAS,EAAC;AAAsB,KAAA,EAC5B0W,YAAY,CAAC;AACfvV,MAAAA,OAAO,EAAE,SAATA,OAAOA,CAAE6V,KAAK,EAAA;AAAA,QAAA,OAAIA,KAAK,CAACC,eAAe,EAAE;AAAA;AAC3C,KAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAAhX,MAAAA,QAAA,EAEFC,cAAAA,cAAA,CAAC6W,YAAY,CAACG,MAAM,EAAA;QAAAjX,QAAA,eAClBC,cAAA,CAAC4I,UAAU,EAAA;AAACZ,UAAAA,KAAK,EAAC,IAAI;UAAAjI,QAAA,EACnBd,CAAC,CAAC,wCAAwC;SACjC;OACO,CAAC,eACtBe,cAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,sBAAsB;QAAAC,QAAA,eACnCC,cAAA,CAACiX,GAAG,EAAA;AAACvB,UAAAA,IAAI,EAAC,OAAO;AAAA3V,UAAAA,QAAA,EACduO,YAAI,CAAClD,GAAG,CAAC,UAAAmB,GAAG,EAAA;AAAA,YAAA,oBACXvM,cAAA,CAACiX,GAAG,CAACC,IAAI,EAAA;AACPC,cAAAA,MAAM,EAAE5C,SAAS,KAAKhI,GAAG,CAACgC,GAAI;cAC9B,aAAahC,EAAAA,GAAG,CAAC6K,UAAW;cAE5BnW,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,gBAAA,OAAQ0Q,YAAY,CAACpF,GAAG,CAACgC,GAAG,CAAC;eAAC;cAAAxO,QAAA,EAEpCwM,GAAG,CAACpM;aAHAoM,EAAAA,GAAG,CAACgC,GAID,CAAC;WACZ;SACE;OACF,CAAC,EACLoI,aAAa,EAAE,EACf9C,YAAM,CAACU,SAAS,EAAEjG,YAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC,iBAC7BvO,cAAA,CAAC6W,YAAY,CAACQ,MAAM,EAAA;AAACvX,QAAAA,SAAS,EAAC,wCAAwC;QAAAC,QAAA,eACrEC,cAAA,CAAC4I,UAAU,EAAA;AAACZ,UAAAA,KAAK,EAAC,OAAO;UAAAjI,QAAA,eACvBC,cAAA,CAACsX,kBAAK,EAAA;AACJC,YAAAA,OAAO,EAAC,+CAA+C;AACvDC,YAAAA,UAAU,EAAE;AACVC,cAAAA,CAAC,eACCzX,cAAA,CAAA,GAAA,EAAA;AAAG2O,gBAAAA,IAAI,EAAE+I,oBAAa;AAAC5I,gBAAAA,GAAG,EAAC,YAAY;AAAChJ,gBAAAA,MAAM,EAAC;eAAU;AAE7D;WACD;SACS;AAAC,OACM,CACtB;KACE,CAAA,CACN,eACD9F,cAAA,CAAAtB,OAAAA,EAAAA,aAAA,KAAW+X,aAAa,EAAE,CAAG,CAAC;AAAA,GAClB,CAAC;AAEnB;;;;;","x_google_ignoreList":[1,2,10,11,12,13,14,15,16]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useImageUploader-C47bKpQb.js","sources":["../app/javascript/src/apis/direct_uploads.js","../app/javascript/src/hooks/useDirectUploads.js","../app/javascript/src/apis/cloudflare_image.js","../app/javascript/src/hooks/utils.js","../app/javascript/src/hooks/useImageUploader.js"],"sourcesContent":["import axios from \"axios\";\n\nconst create = payload =>\n axios.post(\n \"/api/direct_uploads\",\n { blob: payload },\n { transformRequestCase: false }\n );\n\nconst update = ({ id, payload }) =>\n axios.put(\n `neeto_image_uploader_engine/api/direct_uploads/${id}`,\n { blob: payload },\n { transformRequestCase: false }\n );\nconst directUploadsApi = { create, update };\n\nexport default directUploadsApi;\n","import { useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useCreateBlob = options =>\n useMutationWithInvalidation(directUploadsApi.create, {\n keysToInvalidate: [QUERY_KEYS.ASSETS_LIST],\n ...options,\n });\n\nconst useUpdateBlob = options =>\n useMutation({ mutationFn: directUploadsApi.update, ...options });\n\nexport { useCreateBlob, useUpdateBlob };\n","import axios from \"axios\";\n\nconst generate = () =>\n axios.post(\"neeto_image_uploader_engine/cloudflare_images\");\n\nconst upload = ({ url, formData, setUploadProgress }) =>\n axios.post(url, formData, {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n onUploadProgress: event => {\n const percentComplete = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percentComplete);\n },\n transformRequestCase: false,\n });\n\nconst cloudflareImageApi = { generate, upload };\n\nexport default cloudflareImageApi;\n","export const generateASCIIFileName = originalFileName => {\n const sanitizedFileName = originalFileName.replace(/[\\u00A0\\u202F]/g, \" \");\n\n if (/^[A-Za-z0-9-_.~ ]*$/.test(sanitizedFileName)) {\n return originalFileName;\n }\n\n const extension = originalFileName.split(\".\").pop();\n\n return `image.${extension}`;\n};\n\nexport const isGif = fileOrImage =>\n fileOrImage?.type === \"image/gif\" || fileOrImage?.contentType === \"image/gif\";\n","import { DirectUpload } from \"@rails/activestorage\";\nimport ImageKit from \"imagekit-javascript\";\nimport { keysToCamelCase, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Toastr } from \"neetoui\";\nimport { equals, isNil, mergeRight } from \"ramda\";\n\nimport cloudflareImageApi from \"apis/cloudflare_image\";\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { FILE_ERRORS } from \"src/components/common/constants\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\nimport { MAX_DIMENSION } from \"src/constants/query\";\n\nimport { generateASCIIFileName, isGif } from \"./utils\";\n\nconst useImageUploader = ({\n onUploadComplete = noop,\n setIsUploading = noop,\n}) => {\n const authenticationEndpoint = `${window.location.origin}/neeto_image_uploader_engine/imagekit/auth`;\n\n const handleUploadProgress = (e, fileSize, setUploadProgress) => {\n if (e.loaded <= fileSize) {\n const percent = Math.round((e.loaded / fileSize) * 100);\n setUploadProgress(percent);\n }\n equals(e.loaded, e.total) && setUploadProgress(100);\n };\n\n const directUpload = (file, setUploadProgress) => {\n try {\n setIsUploading(true);\n const upload = new DirectUpload(file, \"/api/direct_uploads\", {\n directUploadWillStoreFileWithXHR: xhr => {\n xhr.upload.addEventListener(\"progress\", event => {\n const percentComplete = Math.round(\n (event.loaded / event.total) * 100\n );\n setUploadProgress(percentComplete);\n });\n },\n });\n\n upload.create((_, blob) => {\n const payload = {\n id: blob.signed_id,\n payload: {\n metadata: {\n organizationKey: globalProps.organization.publicApiKey,\n url: blob.blob_url,\n },\n },\n };\n directUploadsApi.update(payload);\n\n const result = mergeRight(keysToCamelCase(blob), {\n url: blob.blob_url,\n });\n\n onUploadComplete(result);\n });\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const imageKitUpload = async (file, XHRProgress) => {\n try {\n const imagekit = new ImageKit(\n mergeRight(globalProps.imagekit, { authenticationEndpoint })\n );\n setIsUploading(true);\n const result = await imagekit.upload({\n xhr: XHRProgress,\n file,\n fileName: generateASCIIFileName(file.name),\n folder: globalProps.imagekit.folder,\n customMetadata: {\n organizationKey: globalProps.organization.publicApiKey,\n appName: globalProps.appName,\n },\n });\n\n onUploadComplete(result);\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const cloudFlareImageUpload = (file, setUploadProgress) => {\n const img = new Image();\n img.src = URL.createObjectURL(file);\n const formData = new FormData();\n formData.append(\"file\", file);\n\n img.onload = async () => {\n img.onload = null;\n const { width, height } = img;\n if (width > MAX_DIMENSION || height > MAX_DIMENSION) {\n Toastr.error(FILE_ERRORS[\"file-dimension-too-large\"], {\n autoClose: 5000,\n });\n\n return;\n }\n URL.revokeObjectURL(img.src);\n\n setIsUploading(true);\n try {\n const {\n result: { uploadURL },\n } = await cloudflareImageApi.generate();\n\n const { result } = await cloudflareImageApi.upload({\n url: uploadURL,\n formData,\n setUploadProgress,\n });\n\n const uploadData = {\n ...result,\n contentType: file.type,\n metadata: { ...result, width, height },\n url: result.variants[0],\n byteSize: file.size,\n checksum: result.id,\n };\n\n onUploadComplete(uploadData);\n setIsUploading(false);\n } catch (error) {\n Toastr.error(error.response?.data?.errors?.[0]?.message, {\n autoClose: 10000,\n });\n setIsUploading(false);\n }\n };\n };\n\n const uploadFile = (file, setUploadProgress = noop) => {\n if (isNil(file)) return;\n\n const fileSize = file.size;\n const XHRProgress = new XMLHttpRequest();\n XHRProgress.upload.addEventListener(\"progress\", e => {\n handleUploadProgress(e, fileSize, setUploadProgress);\n });\n\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(file)) {\n directUpload(file, setUploadProgress);\n\n return;\n }\n\n if (globalProps.assetsUploaderService === CLOUD_FLARE) {\n cloudFlareImageUpload(file, setUploadProgress);\n\n return;\n }\n\n imageKitUpload(file, XHRProgress);\n };\n\n return { uploadFile };\n};\n\nexport default useImageUploader;\n"],"names":["create","payload","axios","post","blob","transformRequestCase","update","_ref","id","put","concat","directUploadsApi","useCreateBlob","options","useMutationWithInvalidation","_objectSpread","keysToInvalidate","QUERY_KEYS","ASSETS_LIST","generate","upload","url","formData","setUploadProgress","headers","onUploadProgress","event","percentComplete","Math","round","loaded","total","cloudflareImageApi","generateASCIIFileName","originalFileName","sanitizedFileName","replace","test","extension","split","pop","isGif","fileOrImage","type","contentType","useImageUploader","_ref$onUploadComplete","onUploadComplete","noop","_ref$setIsUploading","setIsUploading","authenticationEndpoint","window","location","origin","handleUploadProgress","e","fileSize","percent","equals","directUpload","file","DirectUpload","directUploadWillStoreFileWithXHR","xhr","addEventListener","_","signed_id","metadata","organizationKey","globalProps","organization","publicApiKey","blob_url","result","mergeRight","keysToCamelCase","error","Toastr","imageKitUpload","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","XHRProgress","imagekit","wrap","_callee$","_context","prev","next","ImageKit","fileName","name","folder","customMetadata","appName","sent","t0","finish","stop","_x","_x2","apply","arguments","cloudFlareImageUpload","img","Image","src","URL","createObjectURL","FormData","append","onload","_callee2","width","height","_yield$cloudflareImag","uploadURL","_yield$cloudflareImag2","uploadData","_error$response","_callee2$","_context2","MAX_DIMENSION","FILE_ERRORS","autoClose","abrupt","revokeObjectURL","variants","byteSize","size","checksum","response","data","errors","message","uploadFile","length","undefined","isNil","XMLHttpRequest","IS_DEVELOPMENT_OR_HEROKU_ENV","assetsUploaderService","CLOUD_FLARE"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useImageUploader-C5QWq1sL.js","sources":["../app/javascript/src/apis/direct_uploads.js","../app/javascript/src/hooks/useDirectUploads.js","../app/javascript/src/apis/cloudflare_image.js","../app/javascript/src/hooks/utils.js","../app/javascript/src/hooks/useImageUploader.js"],"sourcesContent":["import axios from \"axios\";\n\nconst create = payload =>\n axios.post(\n \"/api/direct_uploads\",\n { blob: payload },\n { transformRequestCase: false }\n );\n\nconst update = ({ id, payload }) =>\n axios.put(\n `neeto_image_uploader_engine/api/direct_uploads/${id}`,\n { blob: payload },\n { transformRequestCase: false }\n );\nconst directUploadsApi = { create, update };\n\nexport default directUploadsApi;\n","import { useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useCreateBlob = options =>\n useMutationWithInvalidation(directUploadsApi.create, {\n keysToInvalidate: [QUERY_KEYS.ASSETS_LIST],\n ...options,\n });\n\nconst useUpdateBlob = options =>\n useMutation({ mutationFn: directUploadsApi.update, ...options });\n\nexport { useCreateBlob, useUpdateBlob };\n","import axios from \"axios\";\n\nconst generate = () =>\n axios.post(\"neeto_image_uploader_engine/cloudflare_images\");\n\nconst upload = ({ url, formData, setUploadProgress }) =>\n axios.post(url, formData, {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n onUploadProgress: event => {\n const percentComplete = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percentComplete);\n },\n transformRequestCase: false,\n });\n\nconst cloudflareImageApi = { generate, upload };\n\nexport default cloudflareImageApi;\n","export const generateASCIIFileName = originalFileName => {\n const sanitizedFileName = originalFileName.replace(/[\\u00A0\\u202F]/g, \" \");\n\n if (/^[A-Za-z0-9-_.~ ]*$/.test(sanitizedFileName)) {\n return originalFileName;\n }\n\n const extension = originalFileName.split(\".\").pop();\n\n return `image.${extension}`;\n};\n\nexport const isGif = fileOrImage =>\n fileOrImage?.type === \"image/gif\" || fileOrImage?.contentType === \"image/gif\";\n","import { DirectUpload } from \"@rails/activestorage\";\nimport ImageKit from \"imagekit-javascript\";\nimport { keysToCamelCase, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Toastr } from \"neetoui\";\nimport { equals, isNil, mergeRight } from \"ramda\";\n\nimport cloudflareImageApi from \"apis/cloudflare_image\";\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { FILE_ERRORS } from \"src/components/common/constants\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\nimport { MAX_DIMENSION } from \"src/constants/query\";\n\nimport { generateASCIIFileName, isGif } from \"./utils\";\n\nconst useImageUploader = ({\n onUploadComplete = noop,\n setIsUploading = noop,\n}) => {\n const authenticationEndpoint = `${window.location.origin}/neeto_image_uploader_engine/imagekit/auth`;\n\n const handleUploadProgress = (e, fileSize, setUploadProgress) => {\n if (e.loaded <= fileSize) {\n const percent = Math.round((e.loaded / fileSize) * 100);\n setUploadProgress(percent);\n }\n equals(e.loaded, e.total) && setUploadProgress(100);\n };\n\n const directUpload = (file, setUploadProgress) => {\n try {\n setIsUploading(true);\n const upload = new DirectUpload(file, \"/api/direct_uploads\", {\n directUploadWillStoreFileWithXHR: xhr => {\n xhr.upload.addEventListener(\"progress\", event => {\n const percentComplete = Math.round(\n (event.loaded / event.total) * 100\n );\n setUploadProgress(percentComplete);\n });\n },\n });\n\n upload.create((_, blob) => {\n const payload = {\n id: blob.signed_id,\n payload: {\n metadata: {\n organizationKey: globalProps.organization.publicApiKey,\n url: blob.blob_url,\n },\n },\n };\n directUploadsApi.update(payload);\n\n const result = mergeRight(keysToCamelCase(blob), {\n url: blob.blob_url,\n });\n\n onUploadComplete(result);\n });\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const imageKitUpload = async (file, XHRProgress) => {\n try {\n const imagekit = new ImageKit(\n mergeRight(globalProps.imagekit, { authenticationEndpoint })\n );\n setIsUploading(true);\n const result = await imagekit.upload({\n xhr: XHRProgress,\n file,\n fileName: generateASCIIFileName(file.name),\n folder: globalProps.imagekit.folder,\n customMetadata: {\n organizationKey: globalProps.organization.publicApiKey,\n appName: globalProps.appName,\n },\n });\n\n onUploadComplete(result);\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const cloudFlareImageUpload = (file, setUploadProgress) => {\n const img = new Image();\n img.src = URL.createObjectURL(file);\n const formData = new FormData();\n formData.append(\"file\", file);\n\n img.onload = async () => {\n img.onload = null;\n const { width, height } = img;\n if (width > MAX_DIMENSION || height > MAX_DIMENSION) {\n Toastr.error(FILE_ERRORS[\"file-dimension-too-large\"], {\n autoClose: 5000,\n });\n\n return;\n }\n URL.revokeObjectURL(img.src);\n\n setIsUploading(true);\n try {\n const {\n result: { uploadURL },\n } = await cloudflareImageApi.generate();\n\n const { result } = await cloudflareImageApi.upload({\n url: uploadURL,\n formData,\n setUploadProgress,\n });\n\n const uploadData = {\n ...result,\n contentType: file.type,\n metadata: { ...result, width, height },\n url: result.variants[0],\n byteSize: file.size,\n checksum: result.id,\n };\n\n onUploadComplete(uploadData);\n setIsUploading(false);\n } catch (error) {\n Toastr.error(error.response?.data?.errors?.[0]?.message, {\n autoClose: 10000,\n });\n setIsUploading(false);\n }\n };\n };\n\n const uploadFile = (file, setUploadProgress = noop) => {\n if (isNil(file)) return;\n\n const fileSize = file.size;\n const XHRProgress = new XMLHttpRequest();\n XHRProgress.upload.addEventListener(\"progress\", e => {\n handleUploadProgress(e, fileSize, setUploadProgress);\n });\n\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(file)) {\n directUpload(file, setUploadProgress);\n\n return;\n }\n\n if (globalProps.assetsUploaderService === CLOUD_FLARE) {\n cloudFlareImageUpload(file, setUploadProgress);\n\n return;\n }\n\n imageKitUpload(file, XHRProgress);\n };\n\n return { uploadFile };\n};\n\nexport default useImageUploader;\n"],"names":["create","payload","axios","post","blob","transformRequestCase","update","_ref","id","put","concat","directUploadsApi","useCreateBlob","options","useMutationWithInvalidation","_objectSpread","keysToInvalidate","QUERY_KEYS","ASSETS_LIST","generate","upload","url","formData","setUploadProgress","headers","onUploadProgress","event","percentComplete","Math","round","loaded","total","cloudflareImageApi","generateASCIIFileName","originalFileName","sanitizedFileName","replace","test","extension","split","pop","isGif","fileOrImage","type","contentType","useImageUploader","_ref$onUploadComplete","onUploadComplete","noop","_ref$setIsUploading","setIsUploading","authenticationEndpoint","window","location","origin","handleUploadProgress","e","fileSize","percent","equals","directUpload","file","DirectUpload","directUploadWillStoreFileWithXHR","xhr","addEventListener","_","signed_id","metadata","organizationKey","globalProps","organization","publicApiKey","blob_url","result","mergeRight","keysToCamelCase","error","Toastr","imageKitUpload","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","XHRProgress","imagekit","wrap","_callee$","_context","prev","next","ImageKit","fileName","name","folder","customMetadata","appName","sent","t0","finish","stop","_x","_x2","apply","arguments","cloudFlareImageUpload","img","Image","src","URL","createObjectURL","FormData","append","onload","_callee2","width","height","_yield$cloudflareImag","uploadURL","_yield$cloudflareImag2","uploadData","_error$response","_callee2$","_context2","MAX_DIMENSION","FILE_ERRORS","autoClose","abrupt","revokeObjectURL","variants","byteSize","size","checksum","response","data","errors","message","uploadFile","length","undefined","isNil","XMLHttpRequest","IS_DEVELOPMENT_OR_HEROKU_ENV","assetsUploaderService","CLOUD_FLARE"],"mappings":"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"}