@next-bricks/ai-portal 0.48.5 → 0.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +7 -6
- package/dist/chunks/6725.024b973c.js +2 -0
- package/dist/chunks/6725.024b973c.js.map +1 -0
- package/dist/chunks/7245.597bf395.js +2 -0
- package/dist/chunks/7245.597bf395.js.map +1 -0
- package/dist/chunks/{7367.26e21493.js → 7367.d389861e.js} +3 -3
- package/dist/chunks/{7367.26e21493.js.map → 7367.d389861e.js.map} +1 -1
- package/dist/chunks/7589.a2830718.js +2 -0
- package/dist/chunks/7589.a2830718.js.map +1 -0
- package/dist/chunks/8324.5ac013ff.js +2 -0
- package/dist/chunks/8324.5ac013ff.js.map +1 -0
- package/dist/chunks/8551.af6f8818.js +3 -0
- package/dist/chunks/8551.af6f8818.js.map +1 -0
- package/dist/chunks/8717.debf076f.js +2 -0
- package/dist/chunks/8717.debf076f.js.map +1 -0
- package/dist/chunks/9360.96ec6cfa.js +2 -0
- package/dist/chunks/{9474.dca1f47c.js.map → 9360.96ec6cfa.js.map} +1 -1
- package/dist/chunks/{action-buttons.3a72e5a4.js → action-buttons.c8899284.js} +2 -2
- package/dist/chunks/action-buttons.c8899284.js.map +1 -0
- package/dist/chunks/activity-timeline.60e516fd.js +2 -0
- package/dist/chunks/activity-timeline.60e516fd.js.map +1 -0
- package/dist/chunks/ai-agents.59e23ea3.js +3 -0
- package/dist/chunks/ai-agents.59e23ea3.js.map +1 -0
- package/dist/chunks/ai-employees.941aaa1b.js +3 -0
- package/dist/chunks/ai-employees.941aaa1b.js.map +1 -0
- package/dist/chunks/blank-state.3a537adc.js +2 -0
- package/dist/chunks/blank-state.3a537adc.js.map +1 -0
- package/dist/chunks/{call-tool.1be50464.js → call-tool.28aa1c47.js} +2 -2
- package/dist/chunks/{call-tool.1be50464.js.map → call-tool.28aa1c47.js.map} +1 -1
- package/dist/chunks/chat-box.690cfe37.js +2 -0
- package/dist/chunks/chat-box.690cfe37.js.map +1 -0
- package/dist/chunks/chat-input.720e6130.js +3 -0
- package/dist/chunks/chat-input.720e6130.js.map +1 -0
- package/dist/chunks/{chat-stream.596a9cf9.js → chat-stream.052c4869.js} +2 -2
- package/dist/chunks/{chat-stream.596a9cf9.js.map → chat-stream.052c4869.js.map} +1 -1
- package/dist/chunks/cruise-canvas.f4b9384f.js +2 -0
- package/dist/chunks/cruise-canvas.f4b9384f.js.map +1 -0
- package/dist/chunks/dropdown-select.11c89c58.js +2 -0
- package/dist/chunks/dropdown-select.11c89c58.js.map +1 -0
- package/dist/chunks/elevo-logo.25e3b889.js +2 -0
- package/dist/chunks/elevo-logo.25e3b889.js.map +1 -0
- package/dist/chunks/elevo-sidebar.dd588b6e.js +3 -0
- package/dist/chunks/elevo-sidebar.dd588b6e.js.map +1 -0
- package/dist/chunks/goal-card-list.11057103.js +3 -0
- package/dist/chunks/goal-card-list.11057103.js.map +1 -0
- package/dist/chunks/home-container.d2c68b4a.js +2 -0
- package/dist/chunks/home-container.d2c68b4a.js.map +1 -0
- package/dist/chunks/{icon-button.1ac30b57.js → icon-button.1014fc6a.js} +2 -2
- package/dist/chunks/{icon-button.1ac30b57.js.map → icon-button.1014fc6a.js.map} +1 -1
- package/dist/chunks/{load-request-store.0229141e.js → load-request-store.843b9a8c.js} +2 -2
- package/dist/chunks/{load-request-store.0229141e.js.map → load-request-store.843b9a8c.js.map} +1 -1
- package/dist/chunks/main.c18035c3.js +2 -0
- package/dist/chunks/{main.974b87ec.js.map → main.c18035c3.js.map} +1 -1
- package/dist/chunks/mcp-tools.64f00038.js +2 -0
- package/dist/chunks/mcp-tools.64f00038.js.map +1 -0
- package/dist/chunks/page-container.fe4474cb.js +2 -0
- package/dist/chunks/page-container.fe4474cb.js.map +1 -0
- package/dist/chunks/preview-container.8e831edb.js +2 -0
- package/dist/chunks/preview-container.8e831edb.js.map +1 -0
- package/dist/chunks/project-conversations.9bd710bf.js +3 -0
- package/dist/chunks/project-conversations.9bd710bf.js.map +1 -0
- package/dist/chunks/project-knowledges.14b07366.js +3 -0
- package/dist/chunks/project-knowledges.14b07366.js.map +1 -0
- package/dist/chunks/show-case.22cdff4b.js +2 -0
- package/dist/chunks/show-case.22cdff4b.js.map +1 -0
- package/dist/chunks/{show-cases.afdbbee3.js → show-cases.e3d47e29.js} +2 -2
- package/dist/chunks/show-cases.e3d47e29.js.map +1 -0
- package/dist/chunks/{stat-with-mini-chart.c9fde80c.js → stat-with-mini-chart.1509cf8c.js} +2 -2
- package/dist/chunks/{stat-with-mini-chart.c9fde80c.js.map → stat-with-mini-chart.1509cf8c.js.map} +1 -1
- package/dist/chunks/tab-list.7c595ef3.js +3 -0
- package/dist/chunks/tab-list.7c595ef3.js.map +1 -0
- package/dist/examples.json +5 -2
- package/dist/images/449e2e64.png +0 -0
- package/dist/images/fc2c99bb.png +0 -0
- package/dist/index.4517c026.js +2 -0
- package/dist/index.4517c026.js.map +1 -0
- package/dist/manifest.json +57 -31
- package/dist/types.json +81 -27
- package/dist-types/blank-state/index.d.ts +16 -0
- package/dist-types/blank-state/index.spec.d.ts +1 -0
- package/dist-types/bootstrap.d.ts +1 -0
- package/dist-types/cruise-canvas/CruiseCanvas.d.ts +1 -1
- package/dist-types/cruise-canvas/index.d.ts +2 -0
- package/dist-types/cruise-canvas/useConversationGraph.d.ts +1 -0
- package/dist-types/elevo-sidebar/index.d.ts +1 -0
- package/dist-types/shared/TaskContext.d.ts +1 -0
- package/docs/blank-state.md +12 -0
- package/package.json +3 -3
- package/dist/chunks/1692.8b80561d.js +0 -2
- package/dist/chunks/1692.8b80561d.js.map +0 -1
- package/dist/chunks/495.06800ca3.js +0 -2
- package/dist/chunks/495.06800ca3.js.map +0 -1
- package/dist/chunks/7431.daf0c131.js +0 -3
- package/dist/chunks/7431.daf0c131.js.map +0 -1
- package/dist/chunks/7571.1dea034d.js +0 -2
- package/dist/chunks/7571.1dea034d.js.map +0 -1
- package/dist/chunks/8324.71f13678.js +0 -2
- package/dist/chunks/8324.71f13678.js.map +0 -1
- package/dist/chunks/9328.794ecf59.js +0 -2
- package/dist/chunks/9328.794ecf59.js.map +0 -1
- package/dist/chunks/9474.dca1f47c.js +0 -2
- package/dist/chunks/action-buttons.3a72e5a4.js.map +0 -1
- package/dist/chunks/activity-timeline.0c683db9.js +0 -2
- package/dist/chunks/activity-timeline.0c683db9.js.map +0 -1
- package/dist/chunks/ai-agents.4b5985d1.js +0 -3
- package/dist/chunks/ai-agents.4b5985d1.js.map +0 -1
- package/dist/chunks/ai-employees.10893372.js +0 -3
- package/dist/chunks/ai-employees.10893372.js.map +0 -1
- package/dist/chunks/chat-box.0fd70952.js +0 -2
- package/dist/chunks/chat-box.0fd70952.js.map +0 -1
- package/dist/chunks/chat-input.6e8da9e5.js +0 -3
- package/dist/chunks/chat-input.6e8da9e5.js.map +0 -1
- package/dist/chunks/cruise-canvas.5cd0f774.js +0 -2
- package/dist/chunks/cruise-canvas.5cd0f774.js.map +0 -1
- package/dist/chunks/dropdown-select.3b1915db.js +0 -2
- package/dist/chunks/dropdown-select.3b1915db.js.map +0 -1
- package/dist/chunks/elevo-logo.93d0f4ab.js +0 -2
- package/dist/chunks/elevo-logo.93d0f4ab.js.map +0 -1
- package/dist/chunks/elevo-sidebar.aa3aa869.js +0 -3
- package/dist/chunks/elevo-sidebar.aa3aa869.js.map +0 -1
- package/dist/chunks/goal-card-list.7b4a6342.js +0 -3
- package/dist/chunks/goal-card-list.7b4a6342.js.map +0 -1
- package/dist/chunks/home-container.1866b2fa.js +0 -2
- package/dist/chunks/home-container.1866b2fa.js.map +0 -1
- package/dist/chunks/main.974b87ec.js +0 -2
- package/dist/chunks/mcp-tools.028e5150.js +0 -2
- package/dist/chunks/mcp-tools.028e5150.js.map +0 -1
- package/dist/chunks/page-container.8bf6e607.js +0 -2
- package/dist/chunks/page-container.8bf6e607.js.map +0 -1
- package/dist/chunks/preview-container.55c2693a.js +0 -2
- package/dist/chunks/preview-container.55c2693a.js.map +0 -1
- package/dist/chunks/project-conversations.5326be22.js +0 -3
- package/dist/chunks/project-conversations.5326be22.js.map +0 -1
- package/dist/chunks/project-knowledges.7c8e9b0c.js +0 -3
- package/dist/chunks/project-knowledges.7c8e9b0c.js.map +0 -1
- package/dist/chunks/show-case.47b40ba3.js +0 -2
- package/dist/chunks/show-case.47b40ba3.js.map +0 -1
- package/dist/chunks/show-cases.afdbbee3.js.map +0 -1
- package/dist/chunks/tab-list.2cbcb36a.js +0 -3
- package/dist/chunks/tab-list.2cbcb36a.js.map +0 -1
- package/dist/index.cf6d8af5.js +0 -2
- package/dist/index.cf6d8af5.js.map +0 -1
- /package/dist/chunks/{7367.26e21493.js.LICENSE.txt → 7367.d389861e.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{7431.daf0c131.js.LICENSE.txt → 8551.af6f8818.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{ai-agents.4b5985d1.js.LICENSE.txt → ai-agents.59e23ea3.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{ai-employees.10893372.js.LICENSE.txt → ai-employees.941aaa1b.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{chat-input.6e8da9e5.js.LICENSE.txt → chat-input.720e6130.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{elevo-sidebar.aa3aa869.js.LICENSE.txt → elevo-sidebar.dd588b6e.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{goal-card-list.7b4a6342.js.LICENSE.txt → goal-card-list.11057103.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{project-conversations.5326be22.js.LICENSE.txt → project-conversations.9bd710bf.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{project-knowledges.7c8e9b0c.js.LICENSE.txt → project-knowledges.14b07366.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{tab-list.2cbcb36a.js.LICENSE.txt → tab-list.7c595ef3.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/7431.daf0c131.js","mappings":";8LAGIA,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,21CAA41C,KAEr4C,QAAeH,EAAwBI,gFCJnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,gOAAiO,KAE1Q,QAAeH,EAAwBI,gFCJnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,gZAAiZ,KAE1b,QAAeH,EAAwBI,gFCJnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,6+CACyjC,KAElmC,QAAeH,EAAwBI,gFCLnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,yYAA0Y,KAEnb,QAAeH,EAAwBI,gFCJnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,qrCAKiI,KAE1K,QAAeH,EAAwBI,qICTnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,qFAAsF,KAE/H,QAAeH,EAAwBI,6GCHnCC,EAAgC,IAAIC,IAAI,cACxCN,EAA0B,IAA4B,KACtDO,EAAqC,IAAgCF,GAEzEL,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4LAA4LI,siCAE+d,KAEpsB,QAAeP,EAAwBI,qICTnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,i2DAAk2D,KAE34D,QAAeH,EAAwBI,gFCJnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,qVAAsV,KAE/X,QAAeH,EAAwBI,kKCHnCC,EAAgC,IAAIC,IAAI,cACxCE,EAAgC,IAAIF,IAAI,cACxCG,EAAgC,IAAIH,IAAI,cACxCN,EAA0B,IAA4B,KACtDO,EAAqC,IAAgCF,GACrEK,EAAqC,IAAgCF,GACrEG,EAAqC,IAAgCF,GAEzET,EAAwBC,KAAK,CAACC,EAAOC,GAAI,wWAAwWI,kCAAmEG,iCAAkEC,qpCAAurC,KAE7sD,QAAeX,EAAwBI,gFCXnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,mrEAAorE,KAE7tE,QAAeH,EAAwBI,6GCHnCC,EAAgC,IAAIC,IAAI,cACxCN,EAA0B,IAA4B,KACtDO,EAAqC,IAAgCF,GAEzEL,EAAwBC,KAAK,CAACC,EAAOC,GAAI,+GAA+GI,svCAC6f,KAErpB,QAAeP,EAAwBI,qICRnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,g7BACu0B,KAEh3B,QAAeH,EAAwBI,6GCJnCC,EAAgC,IAAIC,IAAI,cACxCN,EAA0B,IAA4B,KACtDO,EAAqC,IAAgCF,GAEzEL,EAAwBC,KAAK,CAACC,EAAOC,GAAI,uIAAuII,8zBAAg2B,KAEhhC,QAAeP,EAAwBI,qICPnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,u3IAAw3I,KAEj6I,QAAeH,EAAwBI,yVCQvCQ,EAAAA,EAAAA,gBAAeC,EAAAA,GAAIC,EAAAA,GAEnB,MAAM,cAAEC,GAAa,SAAEC,GAAUC,MAAK,UAAEC,KAAWC,EAAAA,EAAAA,oBAyB7CC,IAAiCC,EAAAA,EAAAA,YAAWC,EAAAA,GAElD,IAAAC,GAAA,IAAAC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAe,GAAA,IAAAf,QAAAgB,GAAA,IAAAhB,QAAAiB,GAAA,IAAAjB,QAAAkB,GAAA,IAAAC,QAAAC,GAAA,IAAApB,QAAAqB,GAAA,IAAArB,QAAAsB,GAAA,IAAAtB,QAAAuB,GAAA,IAAAvB,QAAAwB,GAAA,IAAAxB,QAAAyB,GAAA,IAAAzB,QAAA0B,GAAA,IAAA1B,QAAA2B,GAAA,IAAA3B,QAAA4B,GAAA,IAAA5B,QAAA6B,GAAA,IAAA7B,QAAA8B,GAAA,IAAA9B,QAAA+B,GAAA,IAAA/B,QAIA,MAAAgC,WAI2BC,EAAAA,iBAA8CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAlB,KAAAmB,EAAAA,EAAAA,GAAA,KAAAtC,IAAAuC,EAAA,MAAAC,EAAA,SAIvEF,EAAAA,EAAAA,GAAA,KAAApC,IAAAuC,EAAA,MAAAC,EAAA,SAIAJ,EAAAA,EAAAA,GAAA,KAAAnC,IAAAwC,EAAA,MAAAC,EAAA,SAIAN,EAAAA,EAAAA,GAAA,KAAAlC,IAAAyC,EAAA,MAAAC,EAAA,SAAAR,EAAAA,EAAAA,GAAA,KAAAjC,IAAA0C,EAAA,MAAAC,EAAA,SAAAV,EAAAA,EAAAA,GAAA,KAAAhC,IAAA2C,EAAA,MAAAC,EAAA,SAAAZ,EAAAA,EAAAA,GAAA,KAAA/B,IAAA4C,EAAA,MAAAC,EAAA,SAAAd,EAAAA,EAAAA,GAAA,KAAA9B,IAAA6C,EAAA,MAAAC,EAAA,SAAAhB,EAAAA,EAAAA,GAAA,KAAA7B,IAAA8C,EAAA,MAAAC,EAAA,SAAAlB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA+C,EAAA,MAAAC,EAAA,SAAApB,EAAAA,EAAAA,GAAA,KAAA3B,IAAAgD,EAAA,MAAAC,EAAA,SAAAtB,EAAAA,EAAAA,GAAA,KAAA1B,IAAAiD,EAAA,MAAAC,EAAA,SAAAxB,EAAAA,EAAAA,GAAA,KAAAzB,IAAAkD,EAAA,MAAAC,EAAA,SAAA1B,EAAAA,EAAAA,GAAA,KAAAxB,IAAAmD,EAAA,MAAAC,EAAA,SAAA5B,EAAAA,EAAAA,GAAA,KAAAvB,IAAAoD,EAAA,MAAAC,EAAA,SAAA9B,EAAAA,EAAAA,GAAA,KAAAtB,IAAAqD,EAAA,MAAAC,EAAA,SAAAhC,EAAAA,EAAAA,GAAA,KAAArB,IAAAsD,EAAA,MAAAC,EAAA,SAAAlC,EAAAA,EAAAA,GAAA,KAAApB,IAAAuD,EAAA,MAAAC,GAAA,SAkDApC,EAAAA,EAAAA,GAAA,KAAAjB,IAAQsD,GAAA,MAAG,MACTC,EAAAA,EAAAA,GAAAzD,GAAA0D,KAAKC,IAAYC,MAAM,KACvBzC,EAAAA,EAAAA,GAAA,KAAAhB,GAAA0D,GAAA,QAKF1C,EAAAA,EAAAA,GAAA,KAAAf,IAAY0D,GAAA,MAAG,MACbL,EAAAA,EAAAA,GAAAzD,GAAA0D,KAAKK,IAAgBH,MAAM,KAC3BzC,EAAAA,EAAAA,GAAA,KAAAd,GAAA2D,GAAA,QAKF7C,EAAAA,EAAAA,GAAA,KAAAb,IAAiB2D,GAAA,MAAIC,KACnBT,EAAAA,EAAAA,GAAAzD,GAAA0D,KAAKS,IAAqBP,KAAKM,EAAO,KACtC/C,EAAAA,EAAAA,GAAA,KAAAZ,GAAA6D,GAAA,QAKFjD,EAAAA,EAAAA,GAAA,KAAAX,IAAiB6D,GAAA,MAAIC,KACnBb,EAAAA,EAAAA,GAAAzD,GAAA0D,KAAKa,IAAqBX,KAAKU,EAAO,KACtCnD,EAAAA,EAAAA,GAAA,KAAAV,GAAA+D,GAAA,QAKFrD,EAAAA,EAAAA,GAAA,KAAAT,IAAe+D,GAAA,MAAG,MAChBhB,EAAAA,EAAAA,GAAAzD,GAAA0D,KAAKgB,IAAQd,KAAK,OAAO,KACzBzC,EAAAA,EAAAA,GAAA,KAAAR,GAAAgE,GAAA,QAKFxD,EAAAA,EAAAA,GAAA,KAAAP,IAAegE,GAAA,MAAIV,KACjBT,EAAAA,EAAAA,GAAAzD,GAAA0D,KAAKmB,IAAcjB,KAAKM,EAAO,KAGjC/C,EAAAA,EAAAA,GAAA,KAAAN,IAAOiE,EAAAA,EAAAA,aAA6B,mBAnG3BC,GAAc,OAAAC,EAAAA,EAAAA,GAAAnG,GAAA,wBAAdkG,CAAcE,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,mBAIdE,GAAc,OAAAH,EAAAA,EAAAA,GAAAjG,GAAA,wBAAdoG,CAAcF,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,WAIdG,GAAM,OAAAJ,EAAAA,EAAAA,GAAAhG,GAAA,gBAANoG,CAAMH,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,gBAQNI,GAAW,OAAAL,EAAAA,EAAAA,GAAA/F,GAAA,qBAAXoG,CAAWJ,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,aAGXK,GAAQ,OAAAN,EAAAA,EAAAA,GAAA9F,GAAA,kBAARoG,CAAQL,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,mBAGRM,GAAc,OAAAP,EAAAA,EAAAA,GAAA7F,GAAA,wBAAdoG,CAAcN,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,qBAGdO,GAAgB,OAAAR,EAAAA,EAAAA,GAAA5F,GAAA,0BAAhBoG,CAAgBP,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,iBAGhBQ,GAAY,OAAAT,EAAAA,EAAAA,GAAA3F,GAAA,sBAAZoG,CAAYR,IAAAC,EAAAA,EAAAA,GAAA7F,GAAA,KAAA4F,EAAA,4BAGZS,GAAuB,OAAAV,EAAAA,EAAAA,GAAA1F,GAAA,iCAAvBoG,CAAuBT,IAAAC,EAAAA,EAAAA,GAAA5F,GAAA,KAAA2F,EAAA,uBAGvBU,GAAkB,OAAAX,EAAAA,EAAAA,GAAAzF,GAAA,4BAAlBoG,CAAkBV,IAAAC,EAAAA,EAAAA,GAAA3F,GAAA,KAAA0F,EAAA,iBAGlBW,GAAY,OAAAZ,EAAAA,EAAAA,GAAAxF,GAAA,sBAAZoG,CAAYX,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,gBAGZY,GAAW,OAAAb,EAAAA,EAAAA,GAAAvF,GAAA,qBAAXoG,CAAWZ,IAAAC,EAAAA,EAAAA,GAAAzF,GAAA,KAAAwF,EAAA,kBAGXa,GAAa,OAAAd,EAAAA,EAAAA,GAAAtF,GAAA,uBAAboG,CAAab,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,uBAGbc,GAAkB,OAAAf,EAAAA,EAAAA,GAAArF,GAAA,4BAAlBoG,CAAkBd,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,cAGlBe,GAAS,OAAAhB,EAAAA,EAAAA,GAAApF,GAAA,mBAAToG,CAASf,IAAAC,EAAAA,EAAAA,GAAAtF,GAAA,KAAAqF,EAAA,oBAGTgB,GAAe,OAAAjB,EAAAA,EAAAA,GAAAnF,GAAA,yBAAfoG,CAAehB,IAAAC,EAAAA,EAAAA,GAAArF,GAAA,KAAAoF,EAAA,gBAGfiB,GAAW,OAAAlB,EAAAA,EAAAA,GAAAlF,GAAA,qBAAXoG,CAAWjB,IAAAC,EAAAA,EAAAA,GAAApF,GAAA,KAAAmF,EAAA,CA+CpBkB,OAAAA,GAAU,IAAAC,EAAAC,EACS,QAAjBD,GAAApB,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAF,GAAS,QAATC,EAAjBD,EAAmBD,eAAO,IAAAE,GAA1BA,EAAAE,KAAAH,EACF,CAGAI,kBAAAA,GAAqB,IAAAC,EACF,QAAjBA,GAAAzB,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAG,GAAjBA,EAAmBD,oBACrB,CAGAE,oBAAAA,GAAuB,IAAAC,EACJ,QAAjBA,GAAA3B,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAK,GAAjBA,EAAmBD,sBACrB,CAGAE,kBAAAA,CAAmBtC,GAAgB,IAAAuC,EAChB,QAAjBA,GAAA7B,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAO,GAAjBA,EAAmBD,mBAAmBtC,EACxC,CAEAwC,MAAAA,GACE,OACEC,IAAAA,cAACtI,GAA8B,CAC7BsG,eAAgBrB,KAAKqB,eACrBI,eAAgBzB,KAAKyB,eACrBC,OAAQ1B,KAAK0B,OACbC,YAAa3B,KAAK2B,YAClBC,SAAU5B,KAAK4B,SACfC,eAAgB7B,KAAK6B,eACrBC,iBAAkB9B,KAAK8B,iBACvBC,aAAc/B,KAAK+B,aACnBC,wBAAyBhC,KAAKgC,wBAC9BE,aAAclC,KAAKkC,aACnBD,mBAAoBjC,KAAKiC,mBACzBG,cAAepC,KAAKoC,cACpBC,mBAAoBrC,KAAKqC,mBACzBC,UAAWtC,KAAKsC,UAChBC,gBAAiBvC,KAAKuC,gBACtBC,YAAaxC,KAAKwC,YAClBc,SAAShC,EAAAA,EAAAA,GAAK9E,GAALwD,MACTuD,aAAajC,EAAAA,EAAAA,GAAK5E,GAALsD,MACbwD,kBAAkBlC,EAAAA,EAAAA,GAAK1E,GAALoD,MAClByD,gBAAgBnC,EAAAA,EAAAA,GAAKtE,GAALgD,MAChB0D,kBAAkBpC,EAAAA,EAAAA,GAAKxE,GAALkD,MAClB2D,gBAAgBrC,EAAAA,EAAAA,GAAKpE,GAAL8C,MAChB4D,KAAKtC,EAAAA,EAAAA,GAAKnE,GAAL6C,OAGX,EACD6D,EAAAzG,KAAA0G,GAAAnG,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAI,GAAA8D,GAAAjE,GAAAK,GAAAE,GAAA2D,GAAA5D,GAAAE,GAAAG,GAAAwD,GAAA1D,GAAAG,GAAAG,GAAAqD,GAAAvD,GAAAG,GAAAE,GAAAmD,GAAApD,GAAAE,GAAAE,GAAAiD,GAAAlD,GAAAxD,GAAA2G,GAAAnJ,GAAAoJ,KAAAC,EAAAA,EAAAA,GAAAV,EAAA,CA5JAnJ,GAAc,0BAA2B,CAExC8J,eAAe,KACf,EAEC7J,KAAU,qBAIVA,GAAS,CAAE8J,WAAW,EAAOrB,QAAQ,IAAQ,qBAI7CzI,GAAS,CAAE+J,KAAMC,QAASvB,QAAQ,IAAQ,aAQ1CzI,GAAS,CAAE+J,KAAME,OAAQxB,QAAQ,IAAQ,kBAGzCzI,GAAS,CAAE8J,WAAW,IAAQ,eAG9B9J,GAAS,CAAE+J,KAAMC,UAAU,qBAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,uBAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,mBAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,8BAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,yBAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,mBAG3BhK,GAAS,CAAE+J,KAAMC,QAASvB,QAAQ,IAAQ,kBAG1CzI,GAAS,CAAE+J,KAAMC,UAAU,oBAG3BhK,KAAU,yBAGVA,GAAS,CAAE8J,WAAW,IAAQ,gBAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,sBAG9B9J,KAAU,kBAGVC,GAAM,CAAE8J,KAAM,UAAU,eAAAG,IAAAvD,EAAAA,EAAAA,GAAAjF,GAAAwI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAnF,GAAAwI,EAAAtD,IAAA,CAOxB3G,GAAM,CAAE8J,KAAM,cAAc,mBAAAG,IAAAvD,EAAAA,EAAAA,GAAA7E,GAAAoI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA/E,GAAAoI,EAAAtD,IAAA,CAO5B3G,GAAM,CAAE8J,KAAM,oBAAoB,wBAAAG,IAAAvD,EAAAA,EAAAA,GAAA3E,GAAAkI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA7E,GAAAkI,EAAAtD,IAAA,CAOlC3G,GAAM,CAAE8J,KAAM,qBAAqB,wBAAAG,IAAAvD,EAAAA,EAAAA,GAAAzE,GAAAgI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA3E,GAAAgI,EAAAtD,IAAA,CAOnC3G,GAAM,CAAE8J,KAAM,cAAc,WAAAG,IAAAvD,EAAAA,EAAAA,GAAAvE,GAAA8H,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAzE,GAAA8H,EAAAtD,IAAA,CAO5B3G,GAAM,CAAE8J,KAAM,kBAAkB,iBAAAG,IAAAvD,EAAAA,EAAAA,GAAArE,GAAA4H,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAvE,GAAA4H,EAAAtD,IAAA,CAShC1G,KAAQ,cAKRA,KAAQ,yBAKRA,KAAQ,2BAKRA,KAAQ,4BAAAiK,GAAA3H,GAAA4H,KAAAC,EAAAA,EAAAA,GAAAF,KAtHgBzH,EAAAA,mBAAgBiH,oBCpD3C,MAaMW,GAAe,CACnB,iBACA,cACA,cACA,iBACA,cACA,cACA,YACA,eACA,iBACA,iBACA,QACA,cACA,eACA,gBACA,eACA,aACA,aACA,eAMK,SAASC,GAAiBC,GAC/B,MAAMC,EAAkBC,OAAOC,iBAAiBH,GAIhD,MAAO,GAHaF,GAAaM,KAC9BC,GAAS,GAAGA,KAAQJ,EAAgBK,iBAAiBD,OACtDE,KAAK,wSAET,CCzCA,IAAIC,GCAAA,2CCEJ,IAAIC,GCSJ,MAAMC,GAAS,uBAAuBC,KAAKC,UAAUC,UACjD,UACA,UAiCSC,GAAqB5C,EAAAA,WAGhC6C,IAEF,SAASA,GAAwB/I,EAmB/ByG,GACmB,IAlBjBuC,WAAYC,EAAW,QACvBC,EAAO,QACPC,EAAO,WACPC,EAAU,YACVC,EAAW,aACXC,EACAC,MAAOC,EAAS,MAChBC,EAAK,WACLC,EAAU,oBACVC,EAAmB,SACnBC,EAAQ,SACRC,EAAQ,UACRC,EAAS,mBACTC,EAAkB,iBAClBC,KACGC,GACqBjK,EAG1B,MAAMgJ,EAAaC,SAAAA,GACZM,EAAOW,IAAYC,EAAAA,EAAAA,UAASX,QAAAA,EAAa,IAC1CY,GAAcC,EAAAA,EAAAA,QAA4B,OACzCC,EAAWC,IAAgBJ,EAAAA,EAAAA,UAAqC,OAEvEK,EAAAA,EAAAA,qBACE/D,GACA,KAAM,CACJgE,MAAOA,KACL,MAAMC,EAAWN,EAAY3E,QAE7B,GAAIiF,EAAU,KAAAC,EACZ,MAAMC,EAA4B,QAAjBD,EAAGD,EAASnB,aAAK,IAAAoB,OAAA,EAAdA,EAAgBE,OACpCH,EAASD,QACTG,GAAeF,EAASI,kBAAkBF,EAAaA,EACzD,GAEF5C,QAASoC,EAAY3E,WAEvB,IAGF,MAAMsF,GAAeC,EAAAA,EAAAA,cAAY,KAC/B,MAAMN,EAAWN,EAAY3E,QAC7B,GAAIiF,GAAY1B,EAAY,CAC1B,MAAMS,EDlFG,SACbwB,EACAC,GAEA,MAAM,QACJhC,EAAU,KAAI,QACdC,EAAU,KAAI,WACdC,EAAa,EAAC,YACdC,EAAc,GACZ6B,QAAAA,EAAW,CAAC,EAahB,IAAIC,EACAC,EACAC,EAbC5C,KACHA,GAAiB6C,SAASC,cAAc,YACxC9C,GAAe+C,aAAa,YAAa,MACzC/C,GAAe+C,aAAa,cAAe,QAC3CF,SAASG,KAAKC,YAAYjD,KAI5BA,GAAe+C,aAAa,QAASzD,GAAiBkD,IACtDxC,GAAec,MAAQ0B,EAAW1B,OAAS0B,EAAWU,aAAe,GAMrE,IAAIC,EAASnD,GAAeoD,aAAezC,EAE3C,GAAgB,OAAZF,GAAgC,OAAZC,EAAkB,CACxC,MAAM2C,EAGAC,WACE7D,OACGC,iBAAiBM,IACjBH,iBAAiB,gBAEZ,OAAZY,IACFiC,EAAYW,EAAkB5C,EAAUG,EAAcD,EACtDwC,EAASI,KAAKC,IAAId,EAAWS,IAEf,OAAZzC,IACFiC,EAAYU,EAAkB3C,EAAUE,EAAcD,EAClDwC,GAAUR,IACZC,EAAY,UAEdO,EAASI,KAAKE,IAAId,EAAWQ,GAEjC,CAEA,MAAMnC,EAA6B,CACjCmC,SACAP,YACAc,OAAQ,QAUV,OAPIhB,IACF1B,EAAM0B,UAAYA,GAEhBC,IACF3B,EAAM2B,UAAYA,GAGb3B,CACT,CCkBoB2C,CAAuB1B,EAAU,CAC7CxB,UACAC,UACAC,aACAC,iBAMAgD,EAAAA,GAAAA,YAAU,KACR9B,EAAad,EAAM,GAGzB,IACC,CAACT,EAAYG,EAASD,EAASE,EAAYC,KAS9CiD,EAAAA,EAAAA,YAAU,KACRpC,EAASV,QAAAA,EAAa,GAAG,GACxB,CAACA,KAEJ8C,EAAAA,EAAAA,YAAU,KACRvB,GAAc,GACb,CAACA,EAAcxB,IAElB,MAAMgD,GAAiBlC,EAAAA,EAAAA,SAAO,GAExBmC,GAAyBxB,EAAAA,EAAAA,cAC5BrE,IACC4F,EAAe9G,SAAU,EACzBsE,SAAAA,EAAqBpD,EAAE,GAEzB,CAACoD,IAGG0C,GAAuBzB,EAAAA,EAAAA,cAC1BrE,IACC4F,EAAe9G,SAAU,EACzBuE,SAAAA,EAAmBrD,EAAE,GAEvB,CAACqD,IAGG0C,GAAgB1B,EAAAA,EAAAA,cACnBrE,IACK4F,EAAe9G,UAKI,KAAnBqE,aAAS,EAATA,EAAYnD,KAKJ,UAAVA,EAAEgG,MACc,wBAAfjD,GACI/C,EAAEiG,SACY,mBAAflD,GAAmC/C,EAAE+B,OAEzC/B,EAAEkG,iBACFlG,EAAEmG,kBACFjD,SAAAA,EAAWlD,GACb,GAEF,CAACmD,EAAWD,EAAUH,IAiDxB,OA9CAqD,EAAAA,EAAAA,kBAAgB,KACd,MAAMC,EAAmBrD,aAAmB,EAAnBA,EAAqBlE,QACxCiF,EAAWN,EAAY3E,QAC7B,GAAIuH,GAAoBtC,EAAU,CAChC,MAAM,MAAEuC,EAAK,IAAEC,GAAQF,EACvBrD,EAAoBlE,QAAU,KAC9BiF,EAASI,kBAAkBmC,EAAOC,EACpC,IACC,CAACvD,EAAqBJ,KAGzB+C,EAAAA,EAAAA,YAAU,KACR,MAAMa,EAAY7D,aAAY,EAAZA,EAAc7D,QAChC,IAAK0H,IAAcnE,EACjB,OAEF,IAAIoE,EACJ,MAAMC,EAAW,IAAIC,GAAAA,GAAgBC,IACnC,IAAK,MAAMC,KAASD,EAClB,GAAIC,EAAMC,SAAWN,EAAW,CAE9B,MAAMO,EAAoBF,EAAMG,eAC5BH,EAAMG,eAAe,GACnBH,EAAMG,eAAe,GAAGC,WACvBJ,EAAMG,eACJC,WACLJ,EAAMK,YAAYC,MACtB,QACwBC,IAAtBL,GACAA,IAAsBN,EACtB,CACA,MAAMY,GAAaZ,EACnBA,EAAqBM,EAChBM,GACHC,sBAAsBlD,EAE1B,CACF,CACF,IAGF,OADAsC,EAASa,QAAQf,GACV,KACLE,EAASc,YAAY,CACtB,GACA,CAACnF,EAAYM,EAAcyB,IAG5B7E,EAAAA,cAAA,YAAAkI,EAAAA,GAAAA,GAAA,GACMnE,EAAK,CACTxD,IAAK2D,EACLb,MAAOA,EACPE,MAAO,IACFA,KACAa,GAELV,SAhHFjD,IAEAuD,EAASvD,EAAE8G,OAAOlE,OAClBK,SAAAA,EAAWjD,EAAE,EA8GXoD,mBAAoByC,EACpBxC,iBAAkByC,EAClB3C,UAAW4C,IAGjB,CCzOO,IAAK2B,GAAC,SAADA,GAAC,OAADA,EAAC,6BAADA,EAAC,4BAADA,CAAC,MAKb,MAUahR,GAAK,4BAELC,GAAU,CAAEgR,GAZN,CACjB,CAACD,GAAEE,eAAgB,eACnB,CAACF,GAAEG,cAAe,gBAUSC,GAPV,CACjB,CAACJ,GAAEE,eAAgB,SACnB,CAACF,GAAEG,cAAe,SAOPE,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,kFCatCD,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAMuR,IAAcC,EAAAA,EAAAA,WAAyC,WACvDC,IAAiBD,EAAAA,EAAAA,WAKrB,aAAc,CACdE,cAAe,eACfC,cAAe,gBACfC,gBAAiB,qBAGX3R,cAAa,GAAEC,SAAQ,GAAEC,MAAK,GAAEC,OAAMA,KAAKC,EAAAA,EAAAA,oBAEtCwR,IAAmBtR,EAAAA,EAAAA,YAAWuR,IAAwB,IAAAC,GAAA,IAAArR,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAqR,GAAA,IAAAlQ,QAAAmQ,GAAA,IAAAtR,QAAAK,GAAA,IAAAL,QAAAuR,GAAA,IAAAvR,QAwBnE,MAAAwR,WAMsBvP,EAAAA,iBAAyCC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAiP,KAAAI,EAAAA,GAAAA,GAAA,YAAAnP,GAAA,OACvD0D,EAAAA,EAAAA,gBAAuB3D,EAAAA,EAAAA,GAAA,KAAAtC,GAAA2R,GAAA,QAAArP,EAAAA,EAAAA,GAAA,KAAApC,IAAA0R,GAAA,MAAAC,GAAA,SAAAvP,EAAAA,EAAAA,GAAA,KAAAnC,IAAA2R,GAAA,MAAAC,GAAA,SAAAzP,EAAAA,EAAAA,GAAA,KAAAlC,IAAA4R,GAAA,MAAAC,GAAA,SAAA3P,EAAAA,EAAAA,GAAA,KAAAjC,IAAA6R,GAAA,MAAAC,GAAA,SAiB7B7P,EAAAA,EAAAA,GAAA,KAAAiP,IAAoBa,GAAA,MAAI7G,KACtB3G,EAAAA,EAAAA,GAAA0M,GAAAzM,KAAKwN,IAAetN,KAAKwG,EAAM,KAC/BjJ,EAAAA,EAAAA,GAAA,KAAAhC,GAAAgS,GAAA,QAKFhQ,EAAAA,EAAAA,GAAA,KAAAkP,IAAsBe,GAAA,MAAIC,KACxB5N,EAAAA,EAAAA,GAAA0M,GAAAzM,KAAK4N,IAAiB1N,KAAKyN,EAAS,GACpC,aAvBOE,GAAQ,OAAAvM,EAAAA,EAAAA,GAAAnG,GAAA,kBAAR0S,CAAQtM,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,gBAGRuH,GAAW,OAAAxH,EAAAA,EAAAA,GAAAjG,GAAA,qBAAXyN,CAAWvH,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,cAGXuM,GAAS,OAAAxM,EAAAA,EAAAA,GAAAhG,GAAA,mBAATwS,CAASvM,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,gBAGTwM,GAAW,OAAAzM,EAAAA,EAAAA,GAAA/F,GAAA,qBAAXwS,CAAWxM,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,CAiBpB8F,QAAAA,CAASX,GAAe,IAAAsH,EACN,QAAhBA,EAAAhO,KAAK4D,IAAIhB,eAAO,IAAAoL,GAAhBA,EAAkB3G,SAASX,EAC7B,CAGAuH,QAAAA,GAAW,IAAAC,EACT,OAAuB,QAAvBA,EAAOlO,KAAK4D,IAAIhB,eAAO,IAAAsL,OAAA,EAAhBA,EAAkBD,UAC3B,CAGAE,YAAAA,GAAe,IAAAC,EACb,OAAuB,QAAvBA,EAAOpO,KAAK4D,IAAIhB,eAAO,IAAAwL,OAAA,EAAhBA,EAAkBD,cAC3B,CAEA/K,MAAAA,GACE,OACEC,IAAAA,cAACiJ,GAAgB,CACfuB,SAAU7N,KAAK6N,SACf/E,YAAa9I,KAAK8I,YAClBgF,UAAW9N,KAAK8N,UAChBC,YAAa/N,KAAK+N,YAClB/G,UAAU1F,EAAAA,EAAAA,GAAKoL,GAAL1M,MACVqO,mBAAmB/M,EAAAA,EAAAA,GAAKqL,GAAL3M,MACnB4D,IAAK5D,KAAK4D,KAGhB,EAqBF,SAAS2I,GAAsBpP,EAS7ByG,GACA,IATA,SACEiK,EAAQ,YACR/E,EAAW,UACXgF,EAAS,YACTC,EAAW,SACX/G,EAAQ,kBACRqH,GACsBlR,EAGxB,MAAMsJ,GAAee,EAAAA,EAAAA,QAAuB,MACtCD,GAAcC,EAAAA,EAAAA,QAA8B,OAC3Cd,EAAOW,IAAYC,EAAAA,EAAAA,UAAS,IAC7BgH,GAAW9G,EAAAA,EAAAA,QAAO,KACjB+G,EAAgBC,IAAqBlH,EAAAA,EAAAA,UAC1C,OAEKmH,EAAeC,IAAoBpH,EAAAA,EAAAA,UAAS,KAC5CqH,EAAmBC,IAAwBtH,EAAAA,EAAAA,UAAS,GACrDuH,GAAerH,EAAAA,EAAAA,QAA8C,OAEnEiC,EAAAA,EAAAA,YAAU,KACR,MAAMqF,EAAQzJ,OAAO0J,mBACjBD,UACKzJ,OAAO0J,mBAEc,iBAAnBD,aAAK,EAALA,EAAOE,WAChBV,EAAS1L,QAAUkM,EAAME,QACzB3H,EAASyH,EAAME,SACjB,GACC,KAEHrH,EAAAA,EAAAA,qBAAoB/D,GAAK,KAAM,CAC7ByD,SAAWX,IACT4H,EAAS1L,QAAU8D,EACnBW,EAASX,EAAM,EAEjBuH,SAAUA,IACDK,EAAS1L,QAElBuL,aAAcA,KAAM,IAAAc,EACC,QAAnBA,EAAA1H,EAAY3E,eAAO,IAAAqM,GAAnBA,EAAqBrH,OAAO,MAIhC,MAAMsH,GAAe/G,EAAAA,EAAAA,cAClBrE,IACKA,EAAEqL,cAAczI,OAClBM,EAASlD,EAAEqL,cAAczI,MAC3B,GAEF,CAACM,IAGGoI,GAAejH,EAAAA,EAAAA,cAClBrE,IACC,MAAM,MAAE4C,EAAK,eAAE2I,EAAc,aAAEC,GAAiBxL,EAAE8G,OAIlD,GAHA0D,EAAS1L,QAAU8D,EACnBW,EAASX,IAGN+H,GACkB,OAAnBY,GACAA,IAAmBC,GAFnB,MAGAvB,GAAAA,EAAa/F,OACb,CACA,MAAMuH,EAAkB7I,EAAM8I,MAAM,EAAGH,GACjCI,EAAeF,EAAgBG,YAAY,KACjD,GAAID,GAAgB,EAAG,CACrB,MAAME,EAAcJ,EACjBC,MAAMC,EAAe,GACrBG,cACGC,ELlOT,SACLhI,EACAiI,GAEKnK,KACHA,GAAgB8C,SAASC,cAAc,OACvC/C,GAAcgD,aAAa,YAAa,MACxChD,GAAcgD,aAAa,cAAe,QAC1CF,SAASG,KAAKC,YAAYlD,KAG5BA,GAAcgD,aAAa,QAASzD,GAAiB2C,IACrDlC,GAAcoK,YAAclI,EAASnB,MAAM8I,MAAM,EAAGM,GAEpD,MAAME,EAAOvH,SAASC,cAAc,QACpCsH,EAAKD,YAAc,IACnBpK,GAAckD,YAAYmH,GAE1B,MAAMC,EAAOD,EAAKE,wBAElB,OADAF,EAAKG,SACE,CACLC,IAAKH,EAAKG,IACVC,KAAMJ,EAAKI,KAEf,CK0M2BC,CACfxM,EAAEqL,cACFE,GAEIkB,EAAmBxC,EACtByC,QACE7C,GACCA,EAAS8C,WAAWb,cAAcc,SAASf,IAC3ChC,EAASnI,KAAKoK,cAAcc,SAASf,KAExCH,MAAM,EAAG,IACZ,GAAIe,EAAiBvI,OAAS,EAc5B,OAbAwG,EAAkB,CAChBqB,SAAU,CACRQ,KAAMR,EAASQ,KAAO,GACtBD,IAAKP,EAASO,IAAM,IAEtBO,MAAO,CAAEvG,MAAOqF,EAAcpF,IAAKgF,GACnCuB,QAASL,EAAiBhL,KAAKoI,IAAQ,CACrC7D,IAAK6D,EAAS8C,WACdI,KAAMlD,EAASnI,KACfsL,KAAMnD,aAGViB,EAAqB,EAGzB,CACF,CACAJ,EAAkB,KAAK,GAEzB,CAACT,EAAaU,KAGhBhF,EAAAA,EAAAA,YAAU,KACJgF,IAAkB/H,EAAMgK,SAASjC,KACnCC,EAAiB,IACjBL,EAAkB,MACpB,GACC,CAACI,EAAeJ,EAAmB3H,IAEtC,MAAMqK,GAAoB5I,EAAAA,EAAAA,cAAY,KACpCnB,EAASsH,EAAS1L,QAAQ,GACzB,CAACoE,KAEJyC,EAAAA,EAAAA,YACE,KACMqE,GACFkD,QAAQC,UAAUC,MAAK,KAAM,IAAAC,EACR,QAAnBA,EAAA5J,EAAY3E,eAAO,IAAAuO,GAAnBA,EAAqBvJ,OAAO,GAEhC,GAIF,IAGF,MAAMwJ,GAAgBC,EAAAA,EAAAA,UAAQ,KAAM,IAAAC,EAClC,MAAMnM,EAA6B,QAAtBmM,EAAG/J,EAAY3E,eAAO,IAAA0O,OAAA,EAAnBA,EAAqBnM,QACrC,IAAKsJ,IAAkBtJ,EACrB,MAAO,GAET,MAAM2K,EAAQpJ,EAAM6K,QAAQ9C,GAC5B,OAAIqB,EAAQ,EACH,GAEFpJ,EAAM8I,MAAM,EAAGM,EAAM,GAC3B,CAACrB,EAAe/H,IAEb8K,GAAiBH,EAAAA,EAAAA,UAAQ,KAAM,IAAAI,EACnC,MAAMtM,EAA6B,QAAtBsM,EAAGlK,EAAY3E,eAAO,IAAA6O,OAAA,EAAnBA,EAAqBtM,QACrC,IAAKsJ,IAAkBtJ,EACrB,OAAO,KAET,MAAM8K,EJ7SH,SACLpI,EACA6J,EACAC,GAEKhM,KACHA,GAAgB8C,SAASC,cAAc,OACvC/C,GAAcgD,aAAa,YAAa,MACxChD,GAAcgD,aAAa,cAAe,QAC1CF,SAASG,KAAKC,YAAYlD,KAE5BA,GAAcgD,aAAa,QAASzD,GAAiB2C,IAErDlC,GAAcoK,YAAc2B,EAE5B,MAAM1B,EAAOvH,SAASC,cAAc,QACpCsH,EAAKD,YAAc4B,EACnBhM,GAAckD,YAAYmH,GAE1B,MAAMC,EAAOD,EAAKE,wBAElB,OADAF,EAAKG,SACEF,CACT,CIuRiB2B,CACXzM,EACAiM,EAEA3C,EAAce,MAAM,GAAI,IAE1B,MAAO,CACLa,KAAMJ,EAAKI,KAAO,EAClBD,IAAKH,EAAKG,IAAM,EAChBnF,MAAOgF,EAAKhF,MAAQ,EACpBlC,OAAQkH,EAAKlH,OAAS,EACvB,GACA,CAAC0F,EAAe2C,IAEbS,GAAgB1J,EAAAA,EAAAA,cACnB2J,IACC,MAAMC,EAAU,IAAID,EAAOjB,QACrBa,EAAS,GAAGpD,EAAS1L,QAAQ4M,MAAM,EAAGjB,EAAgBoC,MAAMvG,SAAS2H,IACrEC,EAAW,GAAGN,IAASpD,EAAS1L,QAAQ4M,MAAMjB,EAAgBoC,MAAMtG,OAC1EiE,EAAS1L,QAAUoP,EACnBnD,EAAajM,QAAU,CAAEwH,MAAOsH,EAAO1J,OAAQqC,IAAKqH,EAAO1J,QAC3DX,EAAS2K,GACTtD,EAAiBqD,GACjBvD,EAAkB,MAClBH,EAAmByD,EAAiChB,KAAM,GAE5D,CAACvC,EAAgBF,IAGbxE,GAAgB1B,EAAAA,EAAAA,cACnBrE,IACC,OAAQA,EAAEgG,KACR,IAAK,SACH,IAAKyE,EACH,OAMF,OAJAzK,EAAEkG,iBACFlG,EAAEmG,kBACFnG,EAAEmO,YAAYC,2BACd1D,EAAkB,OACX,EACT,IAAK,UACL,IAAK,YACH,IAAKD,EACH,OAWF,OATAzK,EAAEkG,iBACFlG,EAAEmG,kBACFnG,EAAEmO,YAAYC,2BACdtD,GAAsBuD,IACpB,MAAMC,EAAYD,GAAkB,YAAVrO,EAAEgG,KAAqB,EAAI,GAC/CuI,EAAQ9D,EAAeqC,QAAQ5I,OAErC,OADcqK,EAAQD,GAAaC,CACxB,KAEN,EAET,IAAK,QACH,IAAK9D,EACH,OAMF,OAJAzK,EAAEkG,iBACFlG,EAAEmG,kBACFnG,EAAEmO,YAAYC,2BACdL,EAActD,EAAeqC,QAAQjC,KAC9B,EACT,IAAK,SACL,IAAK,YACH,GAAIF,SAAAA,EAAezG,OAAQ,CACzB,IAAI,eAAEqH,EAAc,aAAEC,GAAiBxL,EAAEqL,cACrCE,IAAmBC,IACP,cAAVxL,EAAEgG,IACJuF,GAAkB,EAElBC,GAAgB,GAGpB,MAAMgD,EAAelB,EAAcpJ,OAC7BuK,EAAaD,EAAe7D,EAAczG,OAChD,GAAIqH,EAAiBkD,GAAcjD,EAAegD,EAAc,CAC9D,MAAMlI,EAAQjB,KAAKE,IAAIgG,EAAgBiD,GACjCjI,EAAMlB,KAAKC,IAAIkG,EAAciD,GAC7BP,EAAW,GAAG1D,EAAS1L,QAAQ4M,MAAM,EAAGpF,KAASkE,EAAS1L,QAAQ4M,MAAMnF,KAM9E,OALAiE,EAAS1L,QAAUoP,EACnBnD,EAAajM,QAAU,CAAEwH,QAAOC,IAAKD,GACrC/C,EAAS2K,GACTlO,EAAEkG,iBACFlG,EAAEmG,mBACK,CACT,CACF,EAGJ,GAEF,CACE0E,EACAkD,EACAtD,EACA6C,EAAcpJ,OACdyG,aAAa,EAAbA,EAAezG,SAInB,OACE3E,IAAAA,cAAA,OAAKmP,UAAU,QACbnP,IAAAA,cAAA,OAAKmP,UAAU,YAAY5O,IAAK6C,GAC9BpD,IAAAA,cAAC4C,GAAkB,CACjBQ,aAAcA,EACd7C,IAAK2D,EACLb,MAAOA,EACPL,QAAS,GAAK,GACdG,YAAa,GACbL,YAAU,EACV0H,SAAUA,EACV/E,YAAaA,QAAAA,EAAe+C,GAAEL,GAAEE,eAChC7E,WAAW,sBACXC,oBAAqB+H,EACrB7H,SAAUkI,EACVnI,SAAUqI,EACVnI,UAAW4C,IAEbxG,IAAAA,cAAA,OAAKmP,UAAU,eACbnP,IAAAA,cAAA,WACEA,IAAAA,cAAA,QAAMmC,KAAK,aAEbnC,IAAAA,cAAA,UACEmP,UAAU,WACV3E,UAAWnH,EACX+L,QAAS1B,GAET1N,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,KAAKhB,OAAO,MAAMiB,KAAK,eAG3CpE,GACClL,IAAAA,cAAC6I,GAAc,CACbsG,UAAU,WACV5B,QAASrC,EAAeqC,QACxBhK,MAAO2H,EAAesB,SACtB1D,cAAgBrI,GAAM+N,EAAc/N,EAAEtD,QACtCoS,YAAa,CAACrE,EAAeqC,QAAQjC,GAAmB7E,OAG3D0H,GACCnO,IAAAA,cAAA,OAAKmP,UAAU,kBAAkB5L,MAAO4K,KAKlD,CA7TCqB,GAAAjG,KAAA9I,GAAAgJ,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAE,GAAAsF,GAAAvF,GAAAE,GAAAG,GAAAmF,GAAArF,GAAAhQ,IAAA2G,GAAAmI,GAAAlI,MAAAC,EAAAA,EAAAA,GAAAsO,GAAA,CA/DAnY,GAAc,qBAAsB,CACnCsY,WAAY,CAACC,GAAAA,GACbzO,cAAe,CACb0O,gBAAgB,MAElB,EAICvY,GAAS,CAAE+J,KAAMC,UAAU,eAG3BhK,KAAU,kBAGVA,GAAS,CAAE+J,KAAMC,UAAU,gBAG3BhK,GAAS,CAAE8J,WAAW,IAAQ,kBAG9B7J,GAAM,CAAE8J,KAAM,mBAAmB,kBAAAG,IAAAvD,EAAAA,EAAAA,GAAA9F,GAAAqJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAhG,GAAAqJ,EAAAtD,IAAA,CAOjC3G,GAAM,CAAE8J,KAAM,wBAAwB,oBAAAG,IAAAvD,EAAAA,EAAAA,GAAA7F,GAAAoJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA/F,GAAAoJ,EAAAtD,IAAA,CAOtC1G,KAAQ,eAKRA,KAAQ,eAKRA,KAAQ,sBAAAiK,GAAA6H,GAAA5H,KAAAC,EAAAA,EAAAA,GAAAF,KAvCWzH,EAAAA,mBAAgBiH,+BC1EtC,MAAQ5J,cAAaA,KAAKI,EAAAA,EAAAA,oBAE1B,IAAAqY,GAIA,MAAAC,WAG4B/V,EAAAA,iBAC1B+F,MAAAA,GACE,OAAOC,IAAAA,cAACgQ,GAAsB,KAChC,EAGK,SAASA,KACd,OAAOhQ,IAAAA,cAAA,YACT,CAJCiQ,GAAAF,IAAAD,GAAA7O,KAAAC,EAAAA,EAAAA,GAAA+O,GAAA,CAPA5Y,GAAc,2BAA4B,CACzCsY,WAAY,CAACC,GAAAA,MACb,YAC0B5V,EAAAA,kBAAgBgH,EAAAC,wFCL5C,MAAMiP,IAAuBtH,EAAAA,EAAAA,WAC3B,uBAGMvR,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAA0Y,GAAA,IAAArY,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAgBvD,MAAAqY,WAIUpW,EAAAA,iBAEVC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAtC,GAAAuY,GAAA,QAAAjW,EAAAA,EAAAA,GAAA,KAAApC,IAAAsY,GAAA,MAAAC,GAAA,SAOEnW,EAAAA,EAAAA,GAAA,KAAAnC,IAAAuY,GAAA,MAAAC,GAAA,SAMArW,EAAAA,EAAAA,GAAA,KAAAlC,IAAAwY,GAAA,MAAAC,GAAA,SAAAvW,EAAAA,EAAAA,GAAA,KAAAjC,IAAAyY,GAAA,MAAAC,GAAA,SASAzW,EAAAA,EAAAA,GAAA,KAAAhC,IAAA0Y,GAAA,MAAAC,GAAA,SAOA3W,EAAAA,EAAAA,GAAA,KAAA/B,IAAA2Y,GAAA,MAAAC,GAAA,SAOA7W,EAAAA,EAAAA,GAAA,KAAA9B,IAAA4Y,GAAA,MAAAC,GAAA,SAMA/W,EAAAA,EAAAA,GAAA,KAAA7B,IAAA6Y,GAAA,MAAAC,GAAA,SAAAjX,EAAAA,EAAAA,GAAA,KAAA5B,IAAA8Y,GAAA,MAAAC,GAAA,QAAAC,GAAA,eAxCSC,GAAK,OAAAxT,EAAAA,EAAAA,GAAAnG,GAAA,eAAL2Z,CAAKvT,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,UAGLmF,GAAK,OAAApF,EAAAA,EAAAA,GAAAjG,GAAA,eAALqL,CAAKnF,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,SAMLwT,GAAI,OAAAzT,EAAAA,EAAAA,GAAAhG,GAAA,cAAJyZ,CAAIxT,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,cAMJyT,GAAS,OAAA1T,EAAAA,EAAAA,GAAA/F,GAAA,mBAATyZ,CAASzT,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,aAGT0T,GAAQ,OAAA3T,EAAAA,EAAAA,GAAA9F,GAAA,kBAARyZ,CAAQ1T,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,QAOR8H,GAAG,OAAA/H,EAAAA,EAAAA,GAAA7F,GAAA,aAAH4N,CAAG9H,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,QAOH6H,GAAG,OAAA9H,EAAAA,EAAAA,GAAA5F,GAAA,aAAH0N,CAAG7H,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,WAMH2T,GAAM,OAAA5T,EAAAA,EAAAA,GAAA3F,GAAA,gBAANuZ,CAAM3T,IAAAC,EAAAA,EAAAA,GAAA7F,GAAA,KAAA4F,EAAA,WAMN4T,GAAM,OAAA7T,EAAAA,EAAAA,GAAA1F,GAAA,gBAANuZ,CAAM5T,IAAAC,EAAAA,EAAAA,GAAA5F,GAAA,KAAA2F,EAAA,SAGNuP,GAAI,OAAAxP,EAAAA,EAAAA,GAAAzF,GAAA,cAAJiV,CAAIvP,IAAAC,EAAAA,EAAAA,GAAA3F,GAAA,KAAA0F,EAAA,CAEb6B,MAAAA,GACE,OACEC,IAAAA,cAAC+R,GAA0B,CACzBN,MAAO9U,KAAK8U,MACZpO,MAAO1G,KAAK0G,MACZqO,KAAM/U,KAAK+U,KACXC,UAAWhV,KAAKgV,UAChBC,SAAUjV,KAAKiV,SACf5L,IAAKrJ,KAAKqJ,IACVD,IAAKpJ,KAAKoJ,IACV8L,OAAQlV,KAAKkV,OACbC,OAAQnV,KAAKmV,OACbrE,KAAM9Q,KAAK8Q,MAGjB,EAGF,SAASsE,GAA0BjY,GAKR,IALS,MAClC2X,EAAK,MACLpO,EAAK,KACLqO,KACGM,GACoBlY,EACvB,MAAa,UAAT4X,EAEA1R,IAAAA,cAAA,OAAKmP,UAAU,aACbnP,IAAAA,cAAA,OAAKmP,UAAU,kBACbnP,IAAAA,cAAA,OAAKmP,UAAU,SAASsC,GACxBzR,IAAAA,cAAA,OAAKmP,UAAU,QAAQ9L,IAEzBrD,IAAAA,cAAA,OAAKmP,UAAU,SACbnP,IAAAA,cAACkQ,IAAoBhI,EAAAA,GAAAA,GAAA,GACf8J,EAAU,CACdC,UAAW,IACXrK,MAAM,OACNlC,OAAO,UAOf1F,IAAAA,cAAA,OAAKmP,UAAU,aACbnP,IAAAA,cAAA,OAAKmP,UAAU,SAASsC,GACxBzR,IAAAA,cAAA,OAAKmP,UAAU,kBACbnP,IAAAA,cAAA,OAAKmP,UAAU,SACbnP,IAAAA,cAACkQ,IAAoBhI,EAAAA,GAAAA,GAAA,GACf8J,EAAU,CACdC,UAAW,EACXrK,MAAM,OACNlC,OAAO,SAGX1F,IAAAA,cAAA,OAAKmP,UAAU,QAAQ9L,IAI/B,CA1CC6O,GAAA9B,KAAA3P,GAAA4P,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,IAAAxQ,GAAAmP,GAAAlP,MAAAC,EAAAA,EAAAA,GAAAgR,GAAA,CAzEA7a,GAAc,iCAAkC,CAC/CsY,WAAY,CAACC,GAAAA,MACb,EAKCtY,KAAU,YAGVA,KAAU,YAMVA,KAAU,WAMVA,KAAU,gBAGVA,GAAS,CAAE+J,KAAMC,UAAU,eAO3BhK,GAAS,CAAE+J,KAAME,SAAS,UAO1BjK,GAAS,CAAE+J,KAAME,SAAS,UAM1BjK,KAAU,aAMVA,KAAU,aAGVA,GAAS,CAAE8J,WAAW,IAAQ,oBAlDvBpH,EAAAA,mBAAgBiH,4CChCnB,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,oBAADA,EAAC,gBAADA,EAAC,cAADA,EAAC,sBAADA,EAAC,kCAADA,EAAC,oCAADA,EAAC,kCAADA,EAAC,oBAADA,EAAC,kBAADA,EAAC,gCAADA,EAAC,kCAADA,EAAC,oBAADA,EAAC,kBAADA,CAAC,MAgBb,MAgCahR,GAAK,iCAELC,GAAU,CAAEgR,GAlCN,CACjB,CAACD,GAAEgK,UAAW,WACd,CAAChK,GAAEiK,QAAS,SACZ,CAACjK,GAAEkK,OAAQ,QACX,CAAClK,GAAEmK,WAAY,YACf,CAACnK,GAAEoK,iBAAkB,kBACrB,CAACpK,GAAEqK,kBAAmB,mBACtB,CAACrK,GAAEsK,iBAAkB,KACrB,CAACtK,GAAEuK,UAAW,WACd,CAACvK,GAAEwK,SAAU,QACb,CAACxK,GAAEyK,gBAAiB,iBACpB,CAACzK,GAAE0K,iBAAkB,kBACrB,CAAC1K,GAAE2K,UAAW,WACd,CAAC3K,GAAE4K,SAAU,WAqBcxK,GAlBV,CACjB,CAACJ,GAAEgK,UAAW,MACd,CAAChK,GAAEiK,QAAS,KACZ,CAACjK,GAAEkK,OAAQ,KACX,CAAClK,GAAEmK,WAAY,KACf,CAACnK,GAAEoK,iBAAkB,OACrB,CAACpK,GAAEqK,kBAAmB,QACtB,CAACrK,GAAEsK,iBAAkB,UACrB,CAACtK,GAAEuK,UAAW,KACd,CAACvK,GAAEwK,SAAU,KACb,CAACxK,GAAEyK,gBAAiB,OACpB,CAACzK,GAAE0K,iBAAkB,QACrB,CAAC1K,GAAE2K,UAAW,MACd,CAAC3K,GAAE4K,SAAU,QAOFvK,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,oBC9B/B,MAAMwR,IAAcC,EAAAA,EAAAA,WAAyC,WACvDoK,IAAcpK,EAAAA,EAAAA,WAA2B,WACzCqK,IAAyBrK,EAAAA,EAAAA,WAKpC,sBAAuB,CACvBE,cAAe,eACfoK,gBAAiB,mBAENC,IAAuBvK,EAAAA,EAAAA,WAGlC,qBACWwK,IAAqBxK,EAAAA,EAAAA,WAKhC,kBAAmB,CACnBE,cAAe,eACfoK,gBAAiB,mBAENG,IAAoBzK,EAAAA,EAAAA,WAC/B,yCC5CK,MCAM0K,GAAkCC,MAAOC,EAAQxO,WAAuF,GAAAyO,KAAKC,IAAI,iEAAkE,IAC3N1O,EACHwO,YACE/F,6CCwBJ,MAAMkG,GAA6B,CACjCtE,IAAK,KACLC,KAAM,QAoEKsE,IAAcjc,EAAAA,EAAAA,YAAWkc,IAE/B,SAASA,GAAmB/Z,EAcjCyG,GACA,IAdA,gBACEuT,EAAe,eACfC,EAAc,mBACdC,EAAkB,gBAClBC,EAAe,mBACfC,EAAkB,eAClBC,EAAc,cACdC,EAAa,cACbtL,EAAa,eACbuL,EAAc,qBACdC,EAAoB,aACpBC,GACiBza,EAGnB,MAAM0a,GAAUrQ,EAAAA,EAAAA,QAA8B,OACvCsQ,EAAUC,IAAezQ,EAAAA,EAAAA,UAA2B,OACpD0Q,EAAmBC,IAAwB3Q,EAAAA,EAAAA,WAAS,IACpD4Q,EAAeC,IAAoB7Q,EAAAA,EAAAA,WAAS,IAC5C8Q,EAAaC,IAAkB/Q,EAAAA,EAAAA,UAA+B,OAC9DgR,EAAkBC,IAAuBjR,EAAAA,EAAAA,WAAS,IAClDkR,EAAWC,IAAgBnR,EAAAA,EAAAA,aAC3BoR,EAAeC,IAAoBrR,EAAAA,EAAAA,aACnCsR,EAAcC,IAAmBvR,EAAAA,EAAAA,WAAS,GAC3CwR,GAAatR,EAAAA,EAAAA,SAAO,IACnBuR,EAAoBC,IAAyB1R,EAAAA,EAAAA,UAAmB,IAEjE2R,GAAuB5H,EAAAA,EAAAA,UAC3B,IACE,IACM+F,QAAAA,EAAkB,GACtB,CACE8B,YAAY,EACZrI,KAAMhF,GAAEL,GAAE0K,iBACVrI,WAAWiK,SAAAA,EAAU9P,QACrBmR,MAAOrB,aAAQ,EAARA,EAAUvS,KAAK6T,IAAO,CAC3Bxe,MAAO,OACPkP,IAAKsP,EAAQC,WACbxI,KAAMuI,EAAQ5T,KACd4T,iBAIR,CAAChC,EAAgBU,KAGnBrO,EAAAA,EAAAA,YAAU,KACR,WACE,IACE,MAAMqO,OFrJ2BlB,iBAAgG,GAAAE,KAAKC,IAAI,4DAA6D,CAE7MF,OEmJuD,CAC/CyC,KAAM,EACNC,UAAW,QFpJjBzI,KEkJ2B0I,GAIvBzB,EAAYD,EAAS2B,KACvB,CAAE,MAAOC,GAEPC,QAAQD,MAAM,0BAA2BA,GACzCvB,GAAiB,GACjBJ,EAAY,GACd,CACD,EAbD,EAaI,GACH,KAEHtO,EAAAA,EAAAA,YAAU,KACRuH,QAAQ4I,IAAI,CACVjD,GACE,CACEkD,MAAOnB,EACPoB,MAAO,GACPC,WAAW,EACXC,sBAAsB,GAExB,CACEC,kBAAmB,CACjBC,kBAAkB,QAIpBpB,EAAWlW,QACX,GACA,CACE,IAAIoO,SAASC,GAAYkJ,WAAWlJ,EAAS,UAGlDC,MAAKkJ,IAAY,IAAVtJ,GAAKsJ,EACXtB,EAAWlW,SAAU,EACrByV,GAAgBlG,GAAS,IACnBA,QAAAA,EAAQ,MACRrB,EAAKuJ,iBAEX5B,EAAa3H,EAAK0H,UAAU,IAE7B8B,OAAOZ,IAENC,QAAQD,MAAM,8BAA+BA,GAC7CrB,EAAe,IACfQ,GAAgB,EAAK,GACrB,GACH,CAACH,IAEJ,MAAO6B,EAAgBC,IAAqBlT,EAAAA,EAAAA,UAAwB,MAE9DmT,GAAUjT,EAAAA,EAAAA,QAA8B,OAE9CiC,EAAAA,EAAAA,YAAU,KACR,MAAMiR,EAAOD,EAAQ7X,QACf+X,EAAO9C,EAAQjV,QACrB,IAAK8X,IAASlC,IAAcmC,GAAQrC,EAClC,OAEF,MAAM9N,EAAW,IAAIoQ,sBAClBlQ,IACC,IAAK,MAAMC,KAASD,EACdC,EAAMkQ,gBACRlC,EAAiBH,EAErB,GAEF,CAAEmC,SAGJ,OADAnQ,EAASa,QAAQqP,GACV,KACLlQ,EAASc,YAAY,CACtB,GACA,CAACkN,EAAWF,IAEf,MAAMwC,GAAYtT,EAAAA,EAAAA,QAAO,GAEnBuT,GAAO5S,EAAAA,EAAAA,cAAYyO,UACvB,IACE,MAAMoE,IAAWF,EAAUlY,QACrBqY,QAAiBtE,GACrB,CACEmD,MAAO,GACPC,WAAW,EACXC,sBAAsB,GAExB,CACEC,kBAAmB,CACjBC,kBAAkB,KAIxB,GAAIc,IAAWF,EAAUlY,QAEvB,OAEFyV,GAAgBlG,IACd,MAAM+I,EAAW/I,QAAAA,EAAQ,GACnBgJ,EAAUF,EAASZ,cACnBe,EAAS,IAAIC,IAAIF,EAAQ5V,KAAK+V,GAASA,EAAKja,kBAC5Cka,EAAc,IAAIC,IACtBL,EAAQ5V,KAAK+V,GAAS,CAACA,EAAKja,eAAgBia,MAG9C,IAAIG,GAAoB,EACpBC,GAAe,EACfC,GAAU,EACd,IAAK,MAAML,KAAQJ,EAAU,CAC3B,MAAMU,EAAUL,EAAYxE,IAAIuE,EAAKja,gBACrC,IAAIua,EAQF,MAJA,GAHAH,GAAoB,EACpBC,EACGC,GAAWC,IAAYT,EAAQ,MAAQU,EAAAA,GAAAA,SAAQD,EAASN,GACvDI,EACF,MAKJC,GAAU,CACZ,CAEA,OAAKF,EAKDC,EACK,IACFP,KACAD,EAAS1K,QAAQ8K,IAAUF,EAAOrW,IAAIuW,EAAKja,mBAI3C8Q,GAXLsG,EAAawC,EAASzC,WACf2C,EAUE,GAEf,CAAE,MAAOzB,GAEPC,QAAQD,MAAM,8BAA+BA,EAC/C,IACC,KAEH/R,EAAAA,EAAAA,qBACE/D,GACA,KAAM,CACJmX,OACAe,cAAgBC,IACdhE,GAAa5F,GACXA,EAAOA,EAAK3B,QAAQwL,GAAMA,EAAE3C,aAAe0C,IAAa5J,GACzD,EAEH8J,WAAa7C,IACXrB,GAAa5F,GAAUA,EAAO,IAAIA,EAAMiH,GAAW,CAACA,IAAU,EAEhE8C,iBAAmB7a,IACjB2X,GAAuB7G,GAAS,IAAIA,EAAM9Q,IAAgB,KAG9D,CAAC0Z,IAGH,MAAMoB,GAAsB9K,EAAAA,EAAAA,UAAQ,IAC7B+G,GAAgBA,EAAYpQ,OAG1BoQ,EAAY5H,QAChB8K,IAAUvC,EAAmBrI,SAAS4K,EAAKja,kBAHrC+W,GAKR,CAACA,EAAaW,IAEjB,OACE1V,IAAAA,cAAA,OAAKmP,UAAU,UAAU5O,IAAKiU,GAC5BxU,IAAAA,cAAA,OAAKmP,UAAW4J,KAAW,UAAW,CAAEC,UAAWrE,KACjD3U,IAAAA,cAAA,OAAKmP,UAAU,iBACbnP,IAAAA,cAAA,OACEmP,UAAU,gBACVC,QAASA,IAAMwF,GAAsB9F,IAAUA,KAE9CtG,GAAEL,GAAEuK,UACL1S,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,KAAKC,KAAK,gBAE5B8E,GACCpU,IAAAA,cAACqT,GAAiB,CAChB/D,KAAMqE,GACNsF,QAAQ,aACRC,QAAS1Q,GAAEL,GAAEyK,gBACbxD,QAASmF,KAIfvU,IAAAA,cAAA,MAAImP,UAAU,SACX0F,EACC7U,IAAAA,cAAA,MAAImP,UAAU,SAAQ,0BACpBsF,EACFA,EAASvS,KAAK6T,GACZ/V,IAAAA,cAAA,MAAIyG,IAAKsP,EAAQC,YACfhW,IAAAA,cAACgT,IAAW9K,EAAAA,GAAAA,GAAA,CACViH,UAAW4J,KAAW,OAAQ,CAC5B,iBAAkBhD,EAAQC,aAAekB,EACzCiC,OAAQpD,EAAQC,aAAe/B,IAEjC7E,QAASiF,GACJH,EACD,CAAEkF,KAAKC,EAAAA,GAAAA,GAAcnF,EAAoB6B,IACzC,MAEJ/V,IAAAA,cAAA,OAAKmP,UAAU,aAAamK,MAAOvD,EAAQ5T,MACxC4T,EAAQ5T,MAAQqG,GAAEL,GAAE4K,UAEvB/S,IAAAA,cAACoT,GAAkB,CACjBjE,UAAU,UACV5B,QAAS4G,EACTrL,cAAgBrI,IACd6T,EAAqB,CAAE7F,OAAQhO,EAAEtD,OAAQ4Y,WAAU,EAErD7C,gBAAkBzS,IAChB0W,EAAkB1W,EAAEtD,OAAS4Y,EAAQC,WAAa,KAAK,QAOjEhW,IAAAA,cAAA,MAAImP,UAAU,WACZnP,IAAAA,cAAC2I,GAAW,CACV0G,IAAI,OACJkK,MAAM,WACNjK,KAAK,qBACLkK,UAAQ,OAMlBxZ,IAAAA,cAAA,OAAKmP,UAAW4J,KAAW,UAAW,CAAEC,UAAW/D,KACjDjV,IAAAA,cAAA,OAAKmP,UAAU,iBACbnP,IAAAA,cAAA,OACEmP,UAAU,gBACVC,QAASA,IAAM8F,GAAqBpG,IAAUA,KAE7CtG,GAAEL,GAAEwK,SACL3S,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,KAAKC,KAAK,iBAG/BtP,IAAAA,cAAA,MAAImP,UAAU,SACX2J,EACCA,EAAoB5W,KAAK+V,GACvBjY,IAAAA,cAAA,MAAIyG,IAAKwR,EAAKja,gBACZgC,IAAAA,cAACgT,IAAW9K,EAAAA,GAAAA,GAAA,CACViH,UAAW4J,KAAW,OAAQ,CAC5B,iBAAkBd,EAAKja,iBAAmBkZ,EAC1CiC,OAAQlB,EAAKja,iBAAmB8V,IAElC1E,QAASiF,GACJL,EACD,CAAEoF,KAAKC,EAAAA,GAAAA,GAAcrF,EAAoBiE,IACzC,MAEJjY,IAAAA,cAAA,OAAKmP,UAAU,aAAamK,MAAOrB,EAAKqB,OACrCrB,EAAKqB,OAAS9Q,GAAEL,GAAE2K,WAErB9S,IAAAA,cAACoT,GAAkB,CACjBjE,UAAU,UACV5B,QAASqI,EACT9M,cAAgBrI,IACdqI,EAAc,CAAE2F,OAAQhO,EAAEtD,OAAQ8a,QAAO,EAE3C/E,gBAAkBzS,IAChB0W,EAAkB1W,EAAEtD,OAAS8a,EAAKja,eAAiB,KAAK,KAG1Dyb,GAAAA,GAAYpM,SAAS4K,EAAKyB,QAC1B1Z,IAAAA,cAAA,OAAKmP,UAAU,gBAMvBnP,IAAAA,cAAA,MAAImP,UAAU,WACZnP,IAAAA,cAAC2I,GAAW,CACV0G,IAAI,OACJkK,MAAM,WACNjK,KAAK,qBACLkK,UAAQ,KAIbjE,EACCvV,IAAAA,cAAA,MAAImP,UAAU,SAAQ,+BACpB,OAEJ8F,GAAoBE,GACpBnV,IAAAA,cAAA,OAAKmP,UAAU,YAAY5O,IAAK6W,GAC9BpX,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,OAAOC,KAAK,qBAAqBkK,UAAQ,MAMtE,uJCnaAtiB,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAMuiB,GAAiC,CACrCtK,IAAK,UACLC,KAAM,WAGFsK,IAAmBhR,EAAAA,EAAAA,WAAU,yBAE3BvR,cAAa,GAAEC,SAAQ,GAAEC,MAAK,GAAEC,OAAMA,KAAKC,EAAAA,EAAAA,oBAyB7CoiB,IAAwBliB,EAAAA,EAAAA,YAAWmiB,IAA6B,IAAAC,GAAA,IAAAjiB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAiiB,GAAA,IAAA9gB,QAAA+gB,GAAA,IAAAliB,QAAAe,GAAA,IAAAf,QAAAmiB,GAAA,IAAAniB,QAAAgB,GAAA,IAAAhB,QAAAoiB,GAAA,IAAApiB,QAAAiB,GAAA,IAAAjB,QAAAqiB,GAAA,IAAAriB,QAAA+B,GAAA,IAAA/B,QAUtE,MAAAsiB,WAG2BrgB,EAAAA,iBAA8CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA6f,KAAA5f,EAAAA,EAAAA,GAAA,KAAAtC,IAAAuC,GAAA,MAAAigB,GAAA,SAAAlgB,EAAAA,EAAAA,GAAA,KAAApC,IAAAuiB,GAAA,MAAAC,GAAA,SAAApgB,EAAAA,EAAAA,GAAA,KAAAnC,IAAAwiB,GAAA,MAAAC,GAAA,SAAAtgB,EAAAA,EAAAA,GAAA,KAAAlC,IAAAyiB,GAAA,MAAAC,GAAA,SAAAxgB,EAAAA,EAAAA,GAAA,KAAAjC,IAAA0iB,GAAA,MAAAC,GAAA,SAAA1gB,EAAAA,EAAAA,GAAA,KAAAhC,IAAA2iB,GAAA,MAAAC,GAAA,SAAA5gB,EAAAA,EAAAA,GAAA,KAAA/B,IAAA4iB,GAAA,MAAAC,GAAA,SAAA9gB,EAAAA,EAAAA,GAAA,KAAA9B,IAAA6iB,GAAA,MAAAC,GAAA,SAAAhhB,EAAAA,EAAAA,GAAA,KAAA7B,IAAA8iB,GAAA,MAAAC,GAAA,SAAAlhB,EAAAA,EAAAA,GAAA,KAAA5B,IAAA+iB,GAAA,MAAAC,GAAA,SAAAphB,EAAAA,EAAAA,GAAA,KAAA3B,IAAAgjB,GAAA,MAAAC,GAAA,SAAAthB,EAAAA,EAAAA,GAAA,KAAA1B,IAAAijB,GAAA,MAAAC,GAAA,SAAAxhB,EAAAA,EAAAA,GAAA,KAAAzB,IAAAkjB,GAAA,MAAAC,GAAA,SAAA1hB,EAAAA,EAAAA,GAAA,KAAAxB,IAAAmjB,GAAA,MAAAC,GAAA,MAyCzB,MAAI5hB,EAAAA,EAAAA,GAAA,KAAAvB,IAAAojB,GAAA,MAAAC,GAAA,SAKlD9hB,EAAAA,EAAAA,GAAA,KAAA6f,IAAakC,GAAA,MAAG,MACdzf,EAAAA,EAAAA,GAAAsd,GAAArd,KAAKyf,IAAQvf,MAAM,KACnBzC,EAAAA,EAAAA,GAAA,KAAAtB,GAAAujB,GAAA,QAKFjiB,EAAAA,EAAAA,GAAA,KAAA8f,IAAkBoC,GAAA,MAAInf,KACpBT,EAAAA,EAAAA,GAAAsd,GAAArd,KAAK4f,IAAa1f,KAAKM,EAAO,KAC9B/C,EAAAA,EAAAA,GAAA,KAAArB,GAAAyjB,GAAA,QAKFpiB,EAAAA,EAAAA,GAAA,KAAA+f,IAAyBsC,GAAA,MAAItf,KAC3BT,EAAAA,EAAAA,GAAAsd,GAAArd,KAAK+f,IAAoB7f,KAAKM,EAAO,KACrC/C,EAAAA,EAAAA,GAAA,KAAApB,GAAA2jB,GAAA,QAKFviB,EAAAA,EAAAA,GAAA,KAAAggB,IAAiBwC,GAAA,MAAG,MAClBlgB,EAAAA,EAAAA,GAAAsd,GAAArd,KAAKkgB,IAAYhgB,MAAM,KAGzBzC,EAAAA,EAAAA,GAAA,KAAAN,IAAOiE,EAAAA,EAAAA,aAA6B,mBArE3B+e,GAAc,OAAA7e,EAAAA,EAAAA,GAAAnG,GAAA,wBAAdglB,CAAc5e,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,aAGd6e,GAAQ,OAAA9e,EAAAA,EAAAA,GAAAjG,GAAA,kBAAR+kB,CAAQ7e,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,aAGR8e,GAAQ,OAAA/e,EAAAA,EAAAA,GAAAhG,GAAA,kBAAR+kB,CAAQ9e,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,YAGR+e,GAAO,OAAAhf,EAAAA,EAAAA,GAAA/F,GAAA,iBAAP+kB,CAAO/e,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,eAGPgf,GAAU,OAAAjf,EAAAA,EAAAA,GAAA9F,GAAA,oBAAV+kB,CAAUhf,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,6BAGVif,GAAwB,OAAAlf,EAAAA,EAAAA,GAAA7F,GAAA,kCAAxB+kB,CAAwBjf,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,oBAGxB4V,GAAe,OAAA7V,EAAAA,EAAAA,GAAA5F,GAAA,yBAAfyb,CAAe5V,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,uBAGf8V,GAAkB,OAAA/V,EAAAA,EAAAA,GAAA3F,GAAA,4BAAlB0b,CAAkB9V,IAAAC,EAAAA,EAAAA,GAAA7F,GAAA,KAAA4F,EAAA,mBAGlB6V,GAAc,OAAA9V,EAAAA,EAAAA,GAAA1F,GAAA,wBAAdwb,CAAc7V,IAAAC,EAAAA,EAAAA,GAAA5F,GAAA,KAAA2F,EAAA,oBAGd+V,GAAe,OAAAhW,EAAAA,EAAAA,GAAAzF,GAAA,yBAAfyb,CAAe/V,IAAAC,EAAAA,EAAAA,GAAA3F,GAAA,KAAA0F,EAAA,uBAGfgW,GAAkB,OAAAjW,EAAAA,EAAAA,GAAAxF,GAAA,4BAAlByb,CAAkBhW,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,mBAGlBiW,GAAc,OAAAlW,EAAAA,EAAAA,GAAAvF,GAAA,wBAAdyb,CAAcjW,IAAAC,EAAAA,EAAAA,GAAAzF,GAAA,KAAAwF,EAAA,UAGdkf,GAAK,OAAAnf,EAAAA,EAAAA,GAAAtF,GAAA,eAALykB,CAAKlf,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,kBAGLkW,GAAa,OAAAnW,EAAAA,EAAAA,GAAArF,GAAA,uBAAbwb,CAAalW,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,CAoCtBmf,WAAAA,CAAYC,GAEVxG,YAAW,KAAM,IAAAzX,EACE,QAAjBA,GAAApB,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAF,GAAjBA,EAAmBqY,MAAM,GACxB4F,EACL,CAGAC,KAAAA,GAAQ,IAAAje,EACW,QAAjBA,GAAArB,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAD,GAAjBA,EAAmBie,OACrB,CAGA9E,aAAAA,CAAcC,GAAmB,IAAAhZ,EAAAE,EACd,QAAjBF,GAAAzB,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAG,GAAe,QAAfE,EAAjBF,EAAmB+Y,qBAAa,IAAA7Y,GAAhCA,EAAAJ,KAAAE,EAAmCgZ,EACrC,CAGAE,UAAAA,CAAW7C,GAAkB,IAAAjW,EAAA0d,EACV,QAAjB1d,GAAA7B,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAO,GAAY,QAAZ0d,EAAjB1d,EAAmB8Y,kBAAU,IAAA4E,GAA7BA,EAAAhe,KAAAM,EAAgCiW,EAClC,CAGA8C,gBAAAA,CAAiB7a,GAAwB,IAAAyf,EAAAC,EACtB,QAAjBD,GAAAxf,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAke,GAAkB,QAAlBC,EAAjBD,EAAmB5E,wBAAgB,IAAA6E,GAAnCA,EAAAle,KAAAie,EAAsCzf,EACxC,CAEA+B,MAAAA,GACE,OACEC,IAAAA,cAAC6Z,GAAqB,CACpBtZ,KAAKtC,EAAAA,EAAAA,GAAKnE,GAAL6C,MACLmgB,eAAgBngB,KAAKmgB,eACrBC,SAAUpgB,KAAKogB,SACfE,QAAStgB,KAAKsgB,QACdC,WAAYvgB,KAAKugB,WACjBC,yBAA0BxgB,KAAKwgB,yBAC/BrJ,gBAAiBnX,KAAKmX,gBACtBE,mBAAoBrX,KAAKqX,mBACzBD,eAAgBpX,KAAKoX,eACrBE,gBAAiBtX,KAAKsX,gBACtBC,mBAAoBvX,KAAKuX,mBACzBC,eAAgBxX,KAAKwX,eACrBiJ,MAAOzgB,KAAKygB,MACZhJ,cAAezX,KAAKyX,cACpBuJ,UAAU1f,EAAAA,EAAAA,GAAKgc,GAALtd,MACVmM,eAAe7K,EAAAA,EAAAA,GAAKic,GAALvd,MACf2X,sBAAsBrW,EAAAA,EAAAA,GAAKkc,GAALxd,MACtB4X,cAActW,EAAAA,EAAAA,GAAKmc,GAALzd,OAGpB,EAUF,SAASmd,GAA2B/C,EAoBlCxW,GACA,IApBA,eACEuc,EAAc,SACdC,EAAQ,QACRE,EAAO,WACPC,EAAU,yBACVC,EAAwB,gBACxBrJ,EAAe,mBACfE,EAAkB,eAClBD,EAAc,gBACdE,EAAe,mBACfC,EAAkB,eAClBC,EAAc,MACdiJ,EAAK,cACLhJ,EAAa,SACbuJ,EAAQ,cACR7U,EAAa,qBACbwL,EAAoB,aACpBC,GAC2BwC,EAG7B,MAAOiC,EAAW4E,IAAgB3Z,EAAAA,EAAAA,UAAsB,WAAb8Y,GACrCc,GAAiB/Y,EAAAA,EAAAA,cAAY,KACjC8Y,GAAa,EAAK,GACjB,IACGE,GAAehZ,EAAAA,EAAAA,cAAY,KAC/B8Y,GAAa,EAAM,GAClB,KAEHxX,EAAAA,EAAAA,YAAU,KACS,WAAb2W,GACFa,GAAa,EACf,GACC,CAACb,IAEJ,MAAMgB,GAAkBjZ,EAAAA,EAAAA,cAAY,KAClC8Y,GAAa,EAAK,GACjB,IAEGI,GAAqBlZ,EAAAA,EAAAA,cAAY,KACpB,WAAbiY,GACFa,GAAa,EACf,GACC,CAACb,IAEEkB,GAAkBjQ,EAAAA,EAAAA,UACtB,IAAM,CACJ,CACEvH,IAAK,SACL6I,KAAM,CACJD,IAAK,KACLhB,OAAQ,MACRiB,KAAM,4BAER9B,KAAMhF,GAAEL,GAAEiK,SAEZ,CACE3L,IAAK,kBACL6I,KAAM,CACJD,IAAK,UACLC,KAAM,YAER9B,KAAMhF,GAAEL,GAAEsK,oBAGd,IAGIyL,GAAa/Z,EAAAA,EAAAA,QAAuB,MAwB1C,OAtBAG,EAAAA,EAAAA,qBACE/D,GACA,KAAM,CACJgd,MAAOA,KACLK,GAAa,EAAK,EAEpBlG,KAAMA,KAAM,IAAAyG,EACQ,QAAlBA,EAAAD,EAAW3e,eAAO,IAAA4e,GAAlBA,EAAoBzG,MAAM,EAE5Be,cAAgBC,IAAsB,IAAA0F,EAAAC,EAClB,QAAlBD,EAAAF,EAAW3e,eAAO,IAAA6e,GAAe,QAAfC,EAAlBD,EAAoB3F,qBAAa,IAAA4F,GAAjCA,EAAA7e,KAAA4e,EAAoC1F,EAAU,EAEhDE,WAAa7C,IAAqB,IAAAuI,EAAAC,EACd,QAAlBD,EAAAJ,EAAW3e,eAAO,IAAA+e,GAAY,QAAZC,EAAlBD,EAAoB1F,kBAAU,IAAA2F,GAA9BA,EAAA/e,KAAA8e,EAAiCvI,EAAQ,EAE3C8C,iBAAmB7a,IAA2B,IAAAwgB,EAAAC,EAC1B,QAAlBD,EAAAN,EAAW3e,eAAO,IAAAif,GAAkB,QAAlBC,EAAlBD,EAAoB3F,wBAAgB,IAAA4F,GAApCA,EAAAjf,KAAAgf,EAAuCxgB,EAAe,KAG1D,IAIAgC,IAAAA,cAAA,OAAKmP,UAAW4J,KAAW,YAAa,CAAEC,eAC1B,WAAb+D,IAA0B/D,GACzBhZ,IAAAA,cAAA,OAAKmP,UAAU,OAAOC,QAAS2O,IAEjC/d,IAAAA,cAAA,OAAKmP,UAAU,eACbnP,IAAAA,cAACqT,GAAiB,CAChB/D,KAAMqK,GACNV,QAAQ,QACR7J,QAAS0O,IAEVX,GACCnd,IAAAA,cAACgT,GAAW,CAAC7D,UAAU,WAAWiK,IAAK8D,GACrCld,IAAAA,cAAC2I,GAAW,CACVwG,UAAU,gBACVE,IAAI,UACJC,KAAK,aAEN9G,GAAEL,GAAEgK,YAIXnS,IAAAA,cAAA,OAAKmP,UAAU,WACbnP,IAAAA,cAAA,OAAKmP,UAAU,YACbnP,IAAAA,cAACgT,GAAW,CAACoG,IAAK6D,EAAS9N,UAAU,aACnCnP,IAAAA,cAAC4Z,GAAgB,OAEnB5Z,IAAAA,cAACqT,GAAiB,CAChB/D,KAAMqK,GACNV,QAAQ,QACR7J,QAASyO,KAGb7d,IAAAA,cAACgT,GAAW,CAAC7D,UAAU,WAAWiK,IAAK8D,GACrCld,IAAAA,cAAC2I,GAAW,CACVwG,UAAU,gBACVE,IAAI,UACJC,KAAK,aAEN9G,GAAEL,GAAEgK,WAENiL,SAAAA,EAAOzY,OACN3E,IAAAA,cAAA,OAAKmP,UAAU,SACZiO,EAAMlb,KAAI,CAACwc,EAAMjS,IAChBzM,IAAAA,cAACgT,GAAW,CAAC7D,UAAU,OAAO1I,IAAKgG,EAAO2M,IAAKsF,EAAKtF,KAClDpZ,IAAAA,cAAC2I,IAAWT,EAAAA,GAAAA,GAAA,CAACiH,UAAU,QAAWuP,EAAKpP,OACvCtP,IAAAA,cAAA,QAAMmP,UAAU,SAASuP,EAAKpF,WAIlC,KACJtZ,IAAAA,cAAC4T,GAAW,CACVrT,IAAK2d,EACL9J,cAAeA,EACfN,gBAAiBA,EACjBE,mBAAoBA,EACpBD,eAAgBA,EAChBE,gBAAiBA,EACjBC,mBAAoBA,EACpBC,eAAgBA,EAChBrL,cAAeA,EACfuL,eAAgB2J,EAChB1J,qBAAsBA,EACtBC,aAAcA,IAEhBvU,IAAAA,cAAA,OAAKmP,UAAU,UACbnP,IAAAA,cAACiT,GAAsB,CACrB9D,UAAU,WACV5B,QAAS0Q,EACTnV,cAAeyK,UACQ,WAAjB9S,EAAEtD,OAAOsJ,IACXkX,WAEMlV,EAAAA,KAAKkW,eACTlW,EAAAA,KAAKmW,UAA4C,OAAhCnW,EAAAA,KAAKmW,SAASC,MAAM,KAAK,GACtC,KACA,OAENC,EAAAA,GAAAA,cAAaC,SACf,GAGF/e,IAAAA,cAAA,UAAQmP,UAAU,WAChBnP,IAAAA,cAACmT,GAAoB,CACnB6L,iBAAkBlC,EAClBmC,UAAQ,EACRvN,KAAK,WAQrB,CApMCwN,GAAA7E,KAAA5Z,GAAA6Z,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAE,GAAA+C,GAAAhD,GAAAE,GAAAE,GAAA6C,GAAA9C,GAAAE,GAAAE,GAAA2C,GAAA5C,GAAAE,GAAAE,GAAAyC,GAAA1C,GAAAviB,IAAA2G,GAAA+Y,GAAA9Y,MAAAC,EAAAA,EAAAA,GAAAge,GAAA,CAnIA7nB,GAAc,0BAA2B,CACxCsY,WAAY,CAACC,GAAAA,MACb,EAECtY,KAAU,qBAGVA,KAAU,eAGVA,GAAS,CAAE+J,KAAMC,QAASvB,QAAQ,IAAQ,eAG1CzI,KAAU,cAGVA,KAAU,iBAGVA,GAAS,CAAE+J,KAAMC,UAAU,+BAG3BhK,KAAU,sBAGVA,KAAU,yBAGVA,GAAS,CAAE8J,WAAW,IAAQ,qBAG9B9J,KAAU,sBAGVA,KAAU,yBAGVA,GAAS,CAAE8J,WAAW,IAAQ,qBAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,YAG9B9J,GAAS,CAAE+J,KAAMC,UAAU,oBAG3B/J,GAAM,CAAE8J,KAAM,WAAW,WAAAG,IAAAvD,EAAAA,EAAAA,GAAApF,GAAA2I,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAtF,GAAA2I,EAAAtD,IAAA,CAOzB3G,GAAM,CAAE8J,KAAM,iBAAiB,gBAAAG,IAAAvD,EAAAA,EAAAA,GAAAnF,GAAA0I,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAArF,GAAA0I,EAAAtD,IAAA,CAO/B3G,GAAM,CAAE8J,KAAM,yBAAyB,uBAAAG,IAAAvD,EAAAA,EAAAA,GAAAlF,GAAAyI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAApF,GAAAyI,EAAAtD,IAAA,CAOvC3G,GAAM,CAAE8J,KAAM,gBAAgB,eAAAG,IAAAvD,EAAAA,EAAAA,GAAAjF,GAAAwI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAnF,GAAAwI,EAAAtD,IAAA,CAY9B1G,KAAQ,kBAQRA,KAAQ,YAKRA,KAAQ,oBAKRA,KAAQ,iBAKRA,KAAQ,0BAAAiK,GAAA3H,GAAA4H,KAAAC,EAAAA,EAAAA,GAAAF,KAnGgBzH,EAAAA,mBAAgBiH,uDCxE3C,MAAM0H,IAAcC,EAAAA,EAAAA,WAAyC,WACvD2W,IAAiB3W,EAAAA,EAAAA,WAAmC,eAElDvR,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAA+nB,GAAA,IAAA1nB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAoBvD,MAAA0nB,WAGyBzlB,EAAAA,iBAA4CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAtC,GAAA4nB,GAAA,QAAAtlB,EAAAA,EAAAA,GAAA,KAAApC,IAAA2nB,GAAA,MAAAC,GAAA,SAAAxlB,EAAAA,EAAAA,GAAA,KAAAnC,IAAA4nB,GAAA,MAAApW,GAAA,SAAArP,EAAAA,EAAAA,GAAA,KAAAlC,IAAAwR,GAAA,MAAAoW,GAAA,QAAAC,GAAA,cAE1DzQ,GAAI,OAAArR,EAAAA,EAAAA,GAAAnG,GAAA,cAAJwX,CAAIpR,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,YAGJgb,GAAO,OAAAjb,EAAAA,EAAAA,GAAAjG,GAAA,iBAAPkhB,CAAOhb,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,aAGPsM,GAAQ,OAAAvM,EAAAA,EAAAA,GAAAhG,GAAA,kBAARuS,CAAQtM,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,YAGR+a,GAAO,OAAAhb,EAAAA,EAAAA,GAAA/F,GAAA,iBAAP+gB,CAAO/a,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,CAEhB6B,MAAAA,GACE,OACEC,IAAAA,cAACggB,GAAmB,CAClB1Q,KAAM3S,KAAK2S,KACX4J,QAASvc,KAAKuc,QACd1O,SAAU7N,KAAK6N,UAGrB,EAGF,SAASwV,GAAmBlmB,GAA+C,IAA9C,KAAEwV,EAAI,QAAE4J,EAAO,SAAE1O,GAA2B1Q,EACvE,MAAMmmB,EACJjgB,IAAAA,cAAA,UAAQwK,SAAUA,GAChBxK,IAAAA,cAAC2I,GAAgB2G,IAIrB,OAAI4J,EACKlZ,IAAAA,cAACuf,GAAc,CAAC5T,QAASuN,GAAU+G,GAGrCA,CACT,CAdCC,GAAAT,KAAAhf,GAAAif,GAAAC,GAAAC,GAAAC,GAAApW,GAAAC,GAAAoW,GAAAC,IAAA/e,GAAAwe,GAAAve,MAAAC,EAAAA,EAAAA,GAAAgf,GAAA,CAzBA7oB,GAAc,wBAAyB,CACtCsY,WAAY,CAACC,GAAAA,MACb,EAECtY,GAAS,CAAE8J,WAAW,IAAQ,WAG9B9J,KAAU,cAGVA,GAAS,CAAE+J,KAAMC,UAAU,eAG3BhK,GAAS,CAAEyI,QAAQ,IAAQ,uBAVL/F,EAAAA,mBAAgBiH,KCnClC,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,UAADA,EAAC,kDAADA,CAAC,MAKb,MAUahR,GAAK,8BAELC,GAAU,CAAEgR,GAZN,CACjB,CAACD,GAAEgY,KAAM,MACT,CAAChY,GAAEiY,yBAA0B,2BAUF7X,GAPV,CACjB,CAACJ,GAAEgY,KAAM,KACT,CAAChY,GAAEiY,yBAA0B,WAOlB5X,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,2CCJtCD,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAMipB,IAAkBzX,EAAAA,EAAAA,WACtB,uBAEI0X,IAAiB1X,EAAAA,EAAAA,WAKrB,qBAAsB,CACtB2X,WAAY,eAGNlpB,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAA+oB,GAAA,IAAA1oB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAWvD,MAAA0oB,WAGwBzmB,EAAAA,iBAA2CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAtC,GAAA4oB,GAAA,QAAAtmB,EAAAA,EAAAA,GAAA,KAAApC,IAAA2oB,GAAA,MAAAC,GAAA,QAAAC,GAAA,cAExDzK,GAAI,OAAAnY,EAAAA,EAAAA,GAAAnG,GAAA,cAAJse,CAAIlY,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,UAGJuY,GAAK,OAAAxY,EAAAA,EAAAA,GAAAjG,GAAA,eAALye,CAAKvY,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,CAEd6B,MAAAA,GACE,OAAOC,IAAAA,cAAC8gB,GAAkB,CAAC1K,KAAMzZ,KAAKyZ,KAAMK,MAAO9Z,KAAK8Z,OAC1D,EAGF,SAASqK,GAAkBhnB,GAAkC,IAAjC,KAAEsc,EAAI,MAAEK,GAAuB3c,EAEzD,MAAMinB,GAAS/S,EAAAA,EAAAA,UAAkB,IACxB,CAAC,MAAO,IAAIgK,IAAI5B,aAAI,EAAJA,EAAMlU,KAAK+V,GAASA,EAAK+I,WAAU7T,OAAO7L,YAChE,CAAC8U,KAEG6K,EAAaC,IAAkBjd,EAAAA,EAAAA,UAAS,IAEzCkd,GAAenT,EAAAA,EAAAA,UAAQ,KAC3B,IAAKoI,EACH,OAEF,IAAIgL,EAAWhL,EAOf,OANI6K,IACFG,EAAWA,EAASjU,QAAQ8K,GAASA,EAAK+I,WAAaC,KAErDxK,IACF2K,EAAWA,EAASjV,MAAM,EAAGsK,IAExB2K,CAAQ,GACd,CAACH,EAAa7K,EAAMK,IAEjB4K,GAAOrT,EAAAA,EAAAA,UAAe,IACnB+S,EAAO7e,KAAKof,IAAK,CACtB7qB,GAAI6qB,EACJ7P,MAAiB,KAAV6P,EAAe9Y,GAAEL,GAAEgY,KAAOmB,OAElC,CAACP,IAEJ,OAAK3K,SAAAA,EAAMzR,OAKT3E,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,OAAKmP,UAAU,QAAQ,GAAG3G,GAAEL,GAAEiY,8BAC9BpgB,IAAAA,cAACsgB,GAAc,CACbe,KAAMA,EACNE,UAAWN,EACXV,WAAahpB,GAAU2pB,EAAe3pB,EAAM4F,OAAO1G,MAErDuJ,IAAAA,cAAA,MAAImP,UAAU,SACXgS,aAAY,EAAZA,EAAcjf,KAAK+V,GAClBjY,IAAAA,cAAA,MAAIyG,IAAKwR,EAAKja,gBACZgC,IAAAA,cAACqgB,GAAe,CACdmB,UAAWvJ,EAAKqB,MAChBmI,QAASxJ,EAAKwJ,QACdrI,IAAKnB,EAAKmB,WAjBb,IAwBX,CAxDCsI,GAAAjB,KAAAhgB,GAAAigB,GAAAC,GAAAC,GAAAC,IAAA7f,GAAAwf,GAAAvf,MAAAC,EAAAA,EAAAA,GAAAwgB,GAAA,CAbArqB,GAAc,uBAAwB,CACrCsY,WAAY,CAACC,GAAAA,MACb,EAECtY,GAAS,CAAE8J,WAAW,IAAQ,WAG9B9J,GAAS,CAAE+J,KAAME,SAAS,qBAJLvH,EAAAA,mBAAgBiH,KC3CjC,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,kBAADA,EAAC,UAADA,EAAC,0BAADA,EAAC,wDAADA,EAAC,4BAADA,EAAC,wCAADA,EAAC,0CAADA,EAAC,0DAADA,EAAC,oDAADA,EAAC,gCAADA,EAAC,sCAADA,EAAC,wBAADA,CAAC,MAgBb,MAgCahR,GAAK,6BAELC,GAAU,CAAEgR,GAlCN,CACjB,CAACD,GAAEwZ,SAAU,UACb,CAACxZ,GAAEgY,KAAM,MAET,CAAChY,GAAEyZ,aAAc,OACjB,CAACzZ,GAAE0Z,4BAA6B,OAChC,CAAC1Z,GAAE2Z,cAAe,QAClB,CAAC3Z,GAAE4Z,oBAAqB,OACxB,CAAC5Z,GAAE6Z,qBAAsB,OACzB,CAAC7Z,GAAE8Z,6BAA8B,uBACjC,CAAC9Z,GAAE+Z,0BAA2B,oBAC9B,CAAC/Z,GAAEga,gBAAiB,UACpB,CAACha,GAAEia,mBAAoB,aACvB,CAACja,GAAEka,YAAa,OAqBW9Z,GAlBV,CACjB,CAACJ,GAAEwZ,SAAU,SACb,CAACxZ,GAAEgY,KAAM,KAET,CAAChY,GAAEyZ,aAAc,OACjB,CAACzZ,GAAE0Z,4BAA6B,OAChC,CAAC1Z,GAAE2Z,cAAe,KAClB,CAAC3Z,GAAE4Z,oBAAqB,KACxB,CAAC5Z,GAAE6Z,qBAAsB,KACzB,CAAC7Z,GAAE8Z,6BAA8B,SACjC,CAAC9Z,GAAE+Z,0BAA2B,OAC9B,CAAC/Z,GAAEga,gBAAiB,UACpB,CAACha,GAAEia,mBAAoB,aACvB,CAACja,GAAEka,YAAa,QAOL7Z,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,2CCnCtCD,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAMkrB,GAAsC,CAC1CjT,IAAK,OACLC,KAAM,QAGFiT,GAAkB,IAAIpK,IAAI,CAC9B,CACE,YACA,CACEqK,QAAS,CAAC,OAAQ,yBAGtB,CACE,UACA,CACEA,QAAS,CAAC,aAGd,CACE,aACA,CACEA,QAAS,CAAC,gBAGd,CACE,OACA,CACEA,QAAS,CAAC,WAGd,CACE,MACA,CACEA,QAAS,CAAC,gBAGd,CACE,MACA,CACEA,QAAS,CAAC,cAAe,kBAG7B,CACE,MACA,CACEA,QAAS,CAAC,SAGd,CACE,OACA,CACEA,QAAS,CAAC,4BAKV7Z,IAAcC,EAAAA,EAAAA,WAAyC,WACvD0X,IAAiB1X,EAAAA,EAAAA,WAKrB,qBAAsB,CACtB2X,WAAY,eAGNlpB,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAgrB,GAAA,IAAA3qB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAyBvD,MAAA2qB,WAGuB1oB,EAAAA,iBAA0CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAtC,GAAA4oB,GAAA,QAI/DtmB,EAAAA,EAAAA,GAAA,KAAApC,IAAA2oB,GAAA,MAAAgC,GAAA,MAEyB,KAAIC,GAAA,cAJpBxM,GAAI,OAAAnY,EAAAA,EAAAA,GAAAnG,GAAA,cAAJse,CAAIlY,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,kBAIJ2kB,GAAa,OAAA5kB,EAAAA,EAAAA,GAAAjG,GAAA,uBAAb6qB,CAAa3kB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,CAEtB6B,MAAAA,GACE,OACEC,IAAAA,cAAC8iB,GAAiB,CAAC1M,KAAMzZ,KAAKyZ,KAAMyM,cAAelmB,KAAKkmB,eAE5D,EAGF,SAASC,GAAiBhpB,GAAyC,IAAxC,KAAEsc,EAAI,cAAEyM,GAA8B/oB,EAE/D,MAAOipB,EAAUC,IAAehV,EAAAA,EAAAA,UAAQ,KACtC,MAAM9L,EAAM,IAAIiW,IACV6K,EAAc,IAAI7K,IACxB/B,SAAAA,EAAM6M,SAAShL,IACb,MAAMiL,EAAY1a,GAChB,UAAUyP,EAAKkL,OAAO1sB,GAAG2sB,WAAW,IAAK,OACzCnL,EAAKkL,OAAOhhB,MAEd,IAAIiU,EAAOlU,EAAIwR,IAAIwP,GACd9M,GACHlU,EAAImhB,IAAIH,EAAY9M,EAAO,IAE7BA,EAAK7f,KAAK0hB,GAEV,MAAMtV,EAAW,IAAI4f,GAAgBlb,WAAWic,MAC9CvM,IAAA,IAAEwM,GAAO,QAAEf,IAAUzL,EAAA,OAAKyL,EAAQnV,SAAS4K,EAAKkL,OAAO1sB,GAAG,IAEtD+sB,EAAe7gB,EAAWA,EAAS,GAAK,KAC9C,IAAIoe,EAASiC,EAAYtP,IAAI8P,GACxBzC,GACHiC,EAAYK,IAAIG,EAAezC,EAAS,IAE1CA,EAAOxqB,KAAK2sB,EAAU,IAGxB,MAAMO,EAAe,CAAC,QAYtB,MAAO,CAXY,IAAItL,IACrB,IAAIjW,EAAImF,WAAWqc,MAAK,CAAAC,EAAAC,KAAsB,IAApBC,GAAMF,GAAGG,GAAMF,EACvC,MAAMG,EAASN,EAAavV,QAAQ2V,GAC9BG,EAASP,EAAavV,QAAQ4V,GACpC,OACGC,EAAS,EAAIN,EAAa9e,OAASof,IACnCC,EAAS,EAAIP,EAAa9e,OAASqf,EAAO,KAK7BhB,EAAY,GAC/B,CAAC5M,IAEE6N,GAAYjW,EAAAA,EAAAA,UAAQ,KACxB,MAAMyV,EAAe,IAAIlB,GAAgB2B,QACnCC,EAAQ,IAAInB,EAAYkB,QAS9B,OARAC,EAAMT,MAAK,CAACU,EAAGC,KACb,MAAMC,EAASb,EAAavV,QAAQkW,GAC9BG,EAASd,EAAavV,QAAQmW,GACpC,OACGC,EAAS,EAAIb,EAAa9e,OAAS2f,IACnCC,EAAS,EAAId,EAAa9e,OAAS4f,EAAO,IAGxC,CAAC,MAAOJ,EAAM,GACpB,CAACnB,KAEGwB,EAAgBC,IAAqBxgB,EAAAA,EAAAA,UAAS,IAE/CygB,GAAiB1W,EAAAA,EAAAA,UAAQ,KAC7B,MAAM2W,EAAc,IAAI5B,GACxB,IAAKyB,EACH,OAAOG,EAET,MAAMC,EAAiB5B,EAAYtP,IAAI8Q,GACvC,OAAOG,EAAYxX,QAAO0X,IAAA,IAAEvD,GAAMuD,EAAA,OAAKD,aAAc,EAAdA,EAAgBvX,SAASiU,EAAM,GAAC,GACtE,CAACkD,EAAgBzB,EAAUC,IAExB3B,GAAOrT,EAAAA,EAAAA,UAAe,IACnBiW,EAAU/hB,KAAKS,IAAQ,CAC5BlM,GAAIkM,EACJ8O,MAAoB,KAAb9O,EAAkB6F,GAAEL,GAAEgY,KAAOxd,OAErC,CAACshB,IAEEa,EACJ9kB,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAACsgB,GAAc,CACbe,KAAMA,EACNE,UAAWiD,EACXjE,WAAahpB,GAAUktB,EAAkBltB,EAAM4F,OAAO1G,MAExDuJ,IAAAA,cAAA,MAAImP,UAAU,UACXuV,aAAc,EAAdA,EAAgBxiB,KAAI6iB,IAAA,IAAE7B,EAAWpN,GAAMiP,EAAA,OACtC/kB,IAAAA,cAAA,MAAIyG,IAAKyc,EAAW/T,UAAU,SAC5BnP,IAAAA,cAAA,UAAKkjB,GACLljB,IAAAA,cAAA,MAAImP,UAAU,QACX2G,EAAM5T,KAAI,CAAC+V,EAAMxL,KAAK,IAAAuY,EAAA,OACrBhlB,IAAAA,cAAA,MAAIyG,IAAKgG,EAAO0C,UAAU,QACxBnP,IAAAA,cAAA,OAAKmP,UAAU,WACbnP,IAAAA,cAAC2I,IAAWT,EAAAA,GAAAA,GAAA,CACViH,UAAU,QACI,QADE6V,EACX/M,EAAK3I,YAAI,IAAA0V,EAAAA,EAAI1C,GAAiB,CACnC2C,SAAU3C,MAEZtiB,IAAAA,cAAA,OAAKmP,UAAU,SAAS8I,EAAKqB,QAE/BtZ,IAAAA,cAAA,OAAKmP,UAAU,eAAe8I,EAAKiN,aAChC,KAGN,MAMb,OAAKrC,EAKH7iB,IAAAA,cAAA,OAAKmP,UAAU,aACbnP,IAAAA,cAAA,UAAKwI,GAAEL,GAAEwZ,UACRmD,GANIA,CASX,CAtHCK,GAAAzC,KAAAjiB,GAAAigB,GAAAC,GAAAgC,GAAAC,IAAA5hB,GAAAyhB,GAAAxhB,MAAAC,EAAAA,EAAAA,GAAAikB,GAAA,CAhBA9tB,GAAc,sBAAuB,CACpCsY,WAAY,CAACC,GAAAA,MACb,EAECtY,GAAS,CAAE8J,WAAW,IAAQ,WAI9B9J,GAAS,CAAE+J,KAAMC,UAAU,6BALPtH,EAAAA,mBAAgBiH,iNCpGvC/J,EAAAA,EAAAA,gBAAeC,GAAAA,GAAIC,GAAAA,GAEnB,MAAQC,cAAa,GAAEC,SAAQ,GAAEC,MAAK,GAAEC,OAAMA,KAAKC,EAAAA,EAAAA,oBAuB7C2tB,IAA+BztB,EAAAA,EAAAA,YAAW0tB,GAAAA,GAEhD,IAAAC,GAAA,IAAAxtB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAe,GAAA,IAAAf,QAAAwtB,GAAA,IAAArsB,QAAAC,GAAA,IAAApB,QAAAgB,GAAA,IAAAhB,QAAAsB,GAAA,IAAAtB,QAAAiB,GAAA,IAAAjB,QAAAwB,GAAA,IAAAxB,QAAAqB,GAAA,IAAArB,QAAA0B,GAAA,IAAA1B,QAAAuB,GAAA,IAAAvB,QAAAytB,GAAA,IAAAztB,QAAAyB,GAAA,IAAAzB,QAAA8B,GAAA,IAAA9B,QAAA+B,GAAA,IAAA/B,QAIA,MAAA0tB,WAIyBzrB,EAAAA,iBAA4CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAorB,KAAAnrB,EAAAA,EAAAA,GAAA,KAAAtC,IAAAuC,GAAA,MAAAC,GAAA,SAInEF,EAAAA,EAAAA,GAAA,KAAApC,IAAAuC,GAAA,MAAAC,GAAA,SAIAJ,EAAAA,EAAAA,GAAA,KAAAnC,IAAAwC,GAAA,MAAAC,GAAA,SAIAN,EAAAA,EAAAA,GAAA,KAAAlC,IAAAyC,GAAA,MAAAC,GAAA,SAAAR,EAAAA,EAAAA,GAAA,KAAAjC,IAAA0C,GAAA,MAAAC,GAAA,SAAAV,EAAAA,EAAAA,GAAA,KAAAhC,IAAA2C,GAAA,MAAAG,GAAA,SAAAd,EAAAA,EAAAA,GAAA,KAAA/B,IAAA8C,GAAA,MAAAC,GAAA,SAAAhB,EAAAA,EAAAA,GAAA,KAAA9B,IAAA+C,GAAA,MAAAC,GAAA,SAAAlB,EAAAA,EAAAA,GAAA,KAAA7B,IAAAgD,GAAA,MAAAC,GAAA,SAAApB,EAAAA,EAAAA,GAAA,KAAA5B,IAAAiD,GAAA,MAAAC,GAAA,SAAAtB,EAAAA,EAAAA,GAAA,KAAA3B,IAAAkD,GAAA,MAAAC,GAAA,SAAAxB,EAAAA,EAAAA,GAAA,KAAA1B,IAAAmD,GAAA,MAAAG,GAAA,SAAA5B,EAAAA,EAAAA,GAAA,KAAAzB,IAAAsD,GAAA,MAAAC,GAAA,SAAA9B,EAAAA,EAAAA,GAAA,KAAAxB,IAAAuD,GAAA,MAAAC,GAAA,SAAAhC,EAAAA,EAAAA,GAAA,KAAAvB,IAAAwD,GAAA,MAAAC,GAAA,SAAAlC,EAAAA,EAAAA,GAAA,KAAAtB,IAAAyD,GAAA,MAAAC,GAAA,SA4CApC,EAAAA,EAAAA,GAAA,KAAAjB,IAAQsD,GAAA,MAAG,MACTC,EAAAA,EAAAA,GAAA6oB,GAAA5oB,KAAKC,IAAYC,MAAM,KACvBzC,EAAAA,EAAAA,GAAA,KAAArB,GAAA+D,GAAA,QAKF1C,EAAAA,EAAAA,GAAA,KAAAf,IAAY0D,GAAA,MAAG,MACbL,EAAAA,EAAAA,GAAA6oB,GAAA5oB,KAAKK,IAAgBH,MAAM,KAC3BzC,EAAAA,EAAAA,GAAA,KAAApB,GAAAiE,GAAA,QAKF7C,EAAAA,EAAAA,GAAA,KAAAb,IAAiB2D,GAAA,MAAIC,KACnBT,EAAAA,EAAAA,GAAA6oB,GAAA5oB,KAAKS,IAAqBP,KAAKM,EAAO,KACtC/C,EAAAA,EAAAA,GAAA,KAAAhB,GAAAiE,GAAA,QAKFjD,EAAAA,EAAAA,GAAA,KAAAX,IAAiB6D,GAAA,MAAIC,KACnBb,EAAAA,EAAAA,GAAA6oB,GAAA5oB,KAAKa,IAAqBX,KAAKU,EAAO,KACtCnD,EAAAA,EAAAA,GAAA,KAAAd,GAAAmE,GAAA,QAKFrD,EAAAA,EAAAA,GAAA,KAAAorB,IAAiB9nB,GAAA,MAAG,MAClBhB,EAAAA,EAAAA,GAAA6oB,GAAA5oB,KAAKgB,IAAQd,KAAK,SAAS,KAC3BzC,EAAAA,EAAAA,GAAA,KAAAZ,GAAAoE,GAAA,QAKFxD,EAAAA,EAAAA,GAAA,KAAAP,IAAegE,GAAA,MAAIV,KACjBT,EAAAA,EAAAA,GAAA6oB,GAAA5oB,KAAKmB,IAAcjB,KAAKM,EAAO,KAGjC/C,EAAAA,EAAAA,GAAA,KAAAN,IAAOiE,EAAAA,EAAAA,aAA2B,mBA7FzBC,GAAc,OAAAC,EAAAA,EAAAA,GAAAnG,GAAA,wBAAdkG,CAAcE,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,mBAIdE,GAAc,OAAAH,EAAAA,EAAAA,GAAAjG,GAAA,wBAAdoG,CAAcF,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,WAIdG,GAAM,OAAAJ,EAAAA,EAAAA,GAAAhG,GAAA,gBAANoG,CAAMH,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,gBAQNI,GAAW,OAAAL,EAAAA,EAAAA,GAAA/F,GAAA,qBAAXoG,CAAWJ,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,aAGXK,GAAQ,OAAAN,EAAAA,EAAAA,GAAA9F,GAAA,kBAARoG,CAAQL,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,qBAGRO,GAAgB,OAAAR,EAAAA,EAAAA,GAAA7F,GAAA,0BAAhBqG,CAAgBP,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,iBAGhBQ,GAAY,OAAAT,EAAAA,EAAAA,GAAA5F,GAAA,sBAAZqG,CAAYR,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,4BAGZS,GAAuB,OAAAV,EAAAA,EAAAA,GAAA3F,GAAA,iCAAvBqG,CAAuBT,IAAAC,EAAAA,EAAAA,GAAA7F,GAAA,KAAA4F,EAAA,uBAGvBU,GAAkB,OAAAX,EAAAA,EAAAA,GAAA1F,GAAA,4BAAlBqG,CAAkBV,IAAAC,EAAAA,EAAAA,GAAA5F,GAAA,KAAA2F,EAAA,iBAGlBW,GAAY,OAAAZ,EAAAA,EAAAA,GAAAzF,GAAA,sBAAZqG,CAAYX,IAAAC,EAAAA,EAAAA,GAAA3F,GAAA,KAAA0F,EAAA,gBAGZY,GAAW,OAAAb,EAAAA,EAAAA,GAAAxF,GAAA,qBAAXqG,CAAWZ,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,uBAGXc,GAAkB,OAAAf,EAAAA,EAAAA,GAAAvF,GAAA,4BAAlBsG,CAAkBd,IAAAC,EAAAA,EAAAA,GAAAzF,GAAA,KAAAwF,EAAA,cAGlBe,GAAS,OAAAhB,EAAAA,EAAAA,GAAAtF,GAAA,mBAATsG,CAASf,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,oBAGTgB,GAAe,OAAAjB,EAAAA,EAAAA,GAAArF,GAAA,yBAAfsG,CAAehB,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,gBAGfiB,GAAW,OAAAlB,EAAAA,EAAAA,GAAApF,GAAA,qBAAXsG,CAAWjB,IAAAC,EAAAA,EAAAA,GAAAtF,GAAA,KAAAqF,EAAA,CA+CpBkB,OAAAA,GAAU,IAAAC,EAAAC,EACS,QAAjBD,GAAApB,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAF,GAAS,QAATC,EAAjBD,EAAmBD,eAAO,IAAAE,GAA1BA,EAAAE,KAAAH,EACF,CAGAI,kBAAAA,GAAqB,IAAAC,EACF,QAAjBA,GAAAzB,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAG,GAAjBA,EAAmBD,oBACrB,CAGAE,oBAAAA,GAAuB,IAAAC,EACJ,QAAjBA,GAAA3B,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAK,GAAjBA,EAAmBD,sBACrB,CAGAE,kBAAAA,CAAmBtC,GAAgB,IAAAuC,EAChB,QAAjBA,GAAA7B,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAO,GAAjBA,EAAmBD,mBAAmBtC,EACxC,CAEAwC,MAAAA,GACE,OACEC,IAAAA,cAAColB,GAA4B,CAC3BpnB,eAAgBrB,KAAKqB,eACrBI,eAAgBzB,KAAKyB,eACrBC,OAAQ1B,KAAK0B,OACbC,YAAa3B,KAAK2B,YAClBC,SAAU5B,KAAK4B,SACfE,iBAAkB9B,KAAK8B,iBACvBC,aAAc/B,KAAK+B,aACnBC,wBAAyBhC,KAAKgC,wBAC9BC,mBAAoBjC,KAAKiC,mBACzBC,aAAclC,KAAKkC,aACnBG,mBAAoBrC,KAAKqC,mBACzBC,UAAWtC,KAAKsC,UAChBC,gBAAiBvC,KAAKuC,gBACtBC,YAAaxC,KAAKwC,YAClBc,SAAShC,EAAAA,EAAAA,GAAK9E,GAALwD,MACTuD,aAAajC,EAAAA,EAAAA,GAAK5E,GAALsD,MACbwD,kBAAkBlC,EAAAA,EAAAA,GAAK1E,GAALoD,MAClB+oB,kBAAkBznB,EAAAA,EAAAA,GAAKunB,GAAL7oB,MAClB0D,kBAAkBpC,EAAAA,EAAAA,GAAKxE,GAALkD,MAClB2D,gBAAgBrC,EAAAA,EAAAA,GAAKpE,GAAL8C,OAGtB,EACDgpB,GAAAF,KAAAhlB,GAAAnG,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAI,GAAA8D,GAAAjE,GAAAK,GAAAE,GAAA2D,GAAA5D,GAAAE,GAAAG,GAAAwD,GAAA1D,GAAAG,GAAAG,GAAAqD,GAAAvD,GAAAG,GAAAE,GAAAmD,GAAApD,GAAAE,GAAAE,GAAAiD,GAAAlD,GAAAxD,IAAA2G,GAAAskB,GAAArkB,MAAAC,EAAAA,EAAAA,GAAAykB,GAAA,CAnJAtuB,GAAc,wBAAyB,CAEtC8J,eAAe,KACf,EAEC7J,KAAU,qBAIVA,GAAS,CAAE8J,WAAW,EAAOrB,QAAQ,IAAQ,qBAI7CzI,GAAS,CAAE+J,KAAMC,UAAU,aAQ3BhK,GAAS,CAAE+J,KAAME,SAAS,kBAG1BjK,GAAS,CAAE8J,WAAW,IAAQ,eAG9B9J,GAAS,CAAE+J,KAAMC,UAAU,uBAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,mBAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,8BAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,yBAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,mBAG3BhK,GAAS,CAAE+J,KAAMC,QAASvB,QAAQ,IAAQ,kBAG1CzI,KAAU,yBAGVA,GAAS,CAAE8J,WAAW,IAAQ,gBAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,sBAG9B9J,KAAU,kBAGVC,GAAM,CAAE8J,KAAM,UAAU,eAAAG,IAAAvD,EAAAA,EAAAA,GAAAnF,GAAA0I,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAArF,GAAA0I,EAAAtD,IAAA,CAOxB3G,GAAM,CAAE8J,KAAM,cAAc,mBAAAG,IAAAvD,EAAAA,EAAAA,GAAAlF,GAAAyI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAApF,GAAAyI,EAAAtD,IAAA,CAO5B3G,GAAM,CAAE8J,KAAM,oBAAoB,wBAAAG,IAAAvD,EAAAA,EAAAA,GAAAjF,GAAAwI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAnF,GAAAwI,EAAAtD,IAAA,CAOlC3G,GAAM,CAAE8J,KAAM,qBAAqB,wBAAAG,IAAAvD,EAAAA,EAAAA,GAAA7E,GAAAoI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA/E,GAAAoI,EAAAtD,IAAA,CAOnC3G,GAAM,CAAE8J,KAAM,cAAc,WAAAG,IAAAvD,EAAAA,EAAAA,GAAA3E,GAAAkI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA7E,GAAAkI,EAAAtD,IAAA,CAO5B3G,GAAM,CAAE8J,KAAM,kBAAkB,iBAAAG,IAAAvD,EAAAA,EAAAA,GAAAzE,GAAAgI,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA3E,GAAAgI,EAAAtD,IAAA,CAShC1G,KAAQ,cAKRA,KAAQ,yBAKRA,KAAQ,2BAKRA,KAAQ,4BAAAiK,GAAA3H,GAAA4H,KAAAC,EAAAA,EAAAA,GAAAF,KAhHczH,EAAAA,mBAAgBiH,KChDlC,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,4BAADA,EAAC,oBAADA,CAAC,MAKb,MAUahR,GAAK,gCAILqR,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,uDCCtCD,EAAAA,EAAAA,gBAAeC,GDHQ,CAAEiR,GAZN,CACjBwd,aAAc,eACd9S,SAAU,YAUiBvK,GAPV,CACjBqd,aAAc,SACd9S,SAAU,SCUZ,MAAME,IAAcpK,EAAAA,EAAAA,WAA2B,WACzCD,IAAcC,EAAAA,EAAAA,WAAyC,WACvD0X,IAAiB1X,EAAAA,EAAAA,WAKrB,qBAAsB,CACtB2X,WAAY,eAGNlpB,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAouB,GAAA,IAAA/tB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAuBvD,MAAA+tB,WAG0B9rB,EAAAA,iBAA6CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAtC,GAAA4oB,GAAA,QAAAtmB,EAAAA,EAAAA,GAAA,KAAApC,IAAA2oB,GAAA,MAAAoF,GAAA,SAQrE3rB,EAAAA,EAAAA,GAAA,KAAAnC,IAAA+tB,GAAA,MAAAC,GAAA,SAKA7rB,EAAAA,EAAAA,GAAA,KAAAlC,IAAAguB,GAAA,MAAAvD,GAAA,MAEyB,KAAIC,GAAA,cAbpBxM,GAAI,OAAAnY,EAAAA,EAAAA,GAAAnG,GAAA,cAAJse,CAAIlY,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,eAGJioB,GAAU,OAAAloB,EAAAA,EAAAA,GAAAjG,GAAA,oBAAVmuB,CAAUjoB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,gBAMVkoB,GAAW,OAAAnoB,EAAAA,EAAAA,GAAAhG,GAAA,qBAAXmuB,CAAWloB,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,kBAIX2kB,GAAa,OAAA5kB,EAAAA,EAAAA,GAAA/F,GAAA,uBAAb2qB,CAAa3kB,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,CAEtB6B,MAAAA,GACE,OACEC,IAAAA,cAACqmB,GAAoB,CACnBjQ,KAAMzZ,KAAKyZ,KACX+P,WAAYxpB,KAAKwpB,WACjBC,YAAazpB,KAAKypB,YAClBvD,cAAelmB,KAAKkmB,eAG1B,EAGF,SAASwD,GAAoBvsB,GAKR,IALS,KAC5Bsc,EACA+P,WAAYG,EAAW,YACvBF,EAAW,cACXvD,GACiB/oB,EACjB,MAAMqsB,GAAanY,EAAAA,EAAAA,UAAQ,IAClB,IACF,IAAIgK,IAAI,IACLsO,QAAAA,EAAe,OACflQ,QAAAA,EAAQ,IAAIlU,KAAK+V,GAASA,EAAKsO,eAGtC,CAACD,EAAalQ,KAEVoQ,EAAgBC,IAAqBxiB,EAAAA,EAAAA,UAASkiB,EAAW,IAG1DpF,GAAS/S,EAAAA,EAAAA,UAAQ,KACrB,MAAM9L,EAAM,IAAIiW,IAWhB,OAVA/B,SAAAA,EAAM6M,SAAShL,IACb,GAAIA,EAAKsO,WAAaC,EACpB,OAEF,IAAIE,EAAQxkB,EAAIwR,IAAIuE,EAAK0O,MACpBD,GACHxkB,EAAImhB,IAAIpL,EAAK0O,KAAOD,EAAQ,IAE9BA,EAAMnwB,KAAK0hB,EAAK,IAEX,IAAI/V,EAAImF,UAAU,GACxB,CAACmf,EAAgBpQ,IAEdiL,GAAOrT,EAAAA,EAAAA,UAAe,IACnBmY,EAAWjkB,KAAKqkB,IAAQ,CAC7B9vB,GAAI8vB,EACJ9U,MAAO8U,GAAY/d,GAAEL,GAAE2K,eAExB,CAACqT,IAEErB,EACJ9kB,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAACsgB,GAAc,CACbe,KAAMA,EACNE,UAAWiF,EACXjG,WAAahpB,GAAUkvB,EAAkBlvB,EAAM4F,OAAO1G,MAExDuJ,IAAAA,cAAA,MAAImP,UAAU,UACX4R,EAAO7e,KAAI6U,IAAA,IAAEmM,EAAWpN,GAAMiB,EAAA,OAC7B/W,IAAAA,cAAA,MAAIyG,IAAKyc,EAAW/T,UAAU,SAC5BnP,IAAAA,cAAA,UAAKkjB,GACLljB,IAAAA,cAAA,MAAImP,UAAU,QACX2G,EAAM5T,KAAI,CAAC+V,EAAMxL,IAChBzM,IAAAA,cAAA,MAAIyG,IAAKgG,GACPzM,IAAAA,cAACgT,IAAW9K,EAAAA,GAAAA,GAAA,CACViH,UAAW4J,KAAW,OAAQ,CAAE6N,YAAaR,KACxCA,EACD,CAAEhN,KAAKC,EAAAA,GAAAA,GAAc+M,EAAanO,IAClC,MAEJjY,IAAAA,cAAA,OAAKmP,UAAU,WACbnP,IAAAA,cAAA,OAAKmP,UAAU,UACZ8I,EAAK4O,OACJ7mB,IAAAA,cAAA,OAAK8mB,IAAK7O,EAAK4O,SAEf7mB,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,OAAOC,KAAK,UAGjCtP,IAAAA,cAAA,OAAKmP,UAAU,SAAS8I,EAAK9V,OAE/BnC,IAAAA,cAAA,OAAKmP,UAAU,eAAe8I,EAAKiN,kBAKxC,MAMb,OAAKrC,EAKH7iB,IAAAA,cAAA,OAAKmP,UAAU,aACbnP,IAAAA,cAAA,UAAKwI,GAAEL,GAAEyd,eACRd,GANIA,CASX,CA7FCiC,GAAAjB,KAAArlB,GAAAigB,GAAAC,GAAAoF,GAAAC,GAAAC,GAAAC,GAAAvD,GAAAC,IAAA5hB,GAAA6kB,GAAA5kB,MAAAC,EAAAA,EAAAA,GAAA6lB,GAAA,CA9BA1vB,GAAc,yBAA0B,CACvCsY,WAAY,CAACC,GAAAA,MACb,EAECtY,GAAS,CAAE8J,WAAW,IAAQ,WAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,iBAM9B9J,KAAU,kBAIVA,GAAS,CAAE+J,KAAMC,UAAU,6BAdJtH,EAAAA,mBAAgBiH,KC3DnC,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,gBAADA,CAAC,MAIb,MAQahR,GAAK,6BAILqR,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,gDCHtC,MAAMmrB,GAAsC,CAC1CjT,IAAK,OACLC,KAAM,SAGRpY,EAAAA,EAAAA,gBAAeC,GDJQ,CAAEiR,GAVN,CACjB4e,OAAQ,UASmBze,GANV,CACjBye,OAAQ,SCWV,MAAMre,IAAcC,EAAAA,EAAAA,WAAyC,WAEvDoK,IAAcpK,EAAAA,EAAAA,WAA2B,YAEvCvR,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAwvB,GAAA,IAAAnvB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAoBvD,MAAAmvB,WAGuBltB,EAAAA,iBAA0CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAtC,GAAA4oB,GAAA,QAAAtmB,EAAAA,EAAAA,GAAA,KAAApC,IAAA2oB,GAAA,MAAAsF,GAAA,SAO/D7rB,EAAAA,EAAAA,GAAA,KAAAnC,IAAAiuB,GAAA,MAAAvD,GAAA,MAEyB,KAAIC,GAAA,cAPpBxM,GAAI,OAAAnY,EAAAA,EAAAA,GAAAnG,GAAA,cAAJse,CAAIlY,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,gBAGJkoB,GAAW,OAAAnoB,EAAAA,EAAAA,GAAAjG,GAAA,qBAAXouB,CAAWloB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,kBAIX2kB,GAAa,OAAA5kB,EAAAA,EAAAA,GAAAhG,GAAA,uBAAb4qB,CAAa3kB,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,CAEtB6B,MAAAA,GACE,OACEC,IAAAA,cAACmnB,GAAiB,CAChB/Q,KAAMzZ,KAAKyZ,KACXgQ,YAAazpB,KAAKypB,YAClBvD,cAAelmB,KAAKkmB,eAG1B,EAGF,SAASsE,GAAiBrtB,GAIR,IAJS,KACzBsc,EAAI,YACJgQ,EAAW,cACXvD,GACc/oB,EACd,MAAMgrB,EACJ9kB,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,MAAImP,UAAU,QACXiH,aAAI,EAAJA,EAAMlU,KAAI,CAAC+V,EAAMxL,KAAK,IAAAuY,EAAAoC,EAAA,OACrBpnB,IAAAA,cAAA,MAAIyG,IAAKgG,GACPzM,IAAAA,cAACgT,IAAW9K,EAAAA,GAAAA,GAAA,CACViH,UAAW4J,KAAW,OAAQ,CAAE6N,YAAaR,KACxCA,EACD,CAAEhN,KAAKC,EAAAA,GAAAA,GAAc+M,EAAanO,IAClC,MAEJjY,IAAAA,cAAA,OAAKmP,UAAU,WACbnP,IAAAA,cAAA,OAAKmP,UAAU,QACbnP,IAAAA,cAAC2I,IAAWT,EAAAA,GAAAA,GAAA,GACI,QADJ8c,EACL/M,EAAK3I,YAAI,IAAA0V,EAAAA,EAAI1C,GAAiB,CACnC2C,SAAU3C,OAGdtiB,IAAAA,cAAA,OAAKmP,UAAU,SAAS8I,EAAK9V,OAE/BnC,IAAAA,cAAA,OAAKmP,UAAU,QACH,QADSiY,EAClBnP,EAAKoP,YAAI,IAAAD,OAAA,EAATA,EAAWllB,KAAI,CAAColB,EAAKC,IACpBvnB,IAAAA,cAAA,QAAMyG,IAAK8gB,EAAUpY,UAAU,OAC5BmY,MAIPtnB,IAAAA,cAAA,OAAKmP,UAAU,eAAe8I,EAAKiN,cAElC,MAMb,OAAKrC,EAKH7iB,IAAAA,cAAA,OAAKmP,UAAU,aACbnP,IAAAA,cAAA,UAAKwI,GAAEL,GAAE6e,SACRlC,GANIA,CASX,CApDC0C,GAAAN,KAAAzmB,GAAAigB,GAAAC,GAAAsF,GAAAC,GAAAvD,GAAAC,IAAA5hB,GAAAimB,GAAAhmB,MAAAC,EAAAA,EAAAA,GAAAsmB,GAAA,CAvBAnwB,GAAc,sBAAuB,CACpCsY,WAAY,CAACC,GAAAA,MACb,EAECtY,GAAS,CAAE8J,WAAW,IAAQ,WAG9B9J,KAAU,kBAIVA,GAAS,CAAE+J,KAAMC,UAAU,6BARPtH,EAAAA,mBAAgBiH,qBC9CvC,IAAIwK,GAA6B,KAgBjCgc,eAAeC,OACb,gCACAC,EAAAA,GAAAA,sBAhBK,SAA0BtkB,GAC/BoI,GAAQpI,CACV,KAiBAokB,eAAeC,OACb,gCACAC,EAAAA,GAAAA,sBAjBK,WACL,MAAMtkB,EAAQoI,GAEd,OADAA,GAAQ,KACDpI,CACT,KAgBAokB,eAAeC,OACb,iCACAC,EAAAA,GAAAA,sBAhBK,WACLlc,GAAQ,IACV,iDCTO,MAAMuH,IAAcpK,EAAAA,EAAAA,WAA2B,YAE9CvR,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAmwB,GAAA,IAAA9vB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAoBvD,MAAA8vB,WAG4B7tB,EAAAA,iBAA+CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAtC,GAAAgwB,GAAA,QAAA1tB,EAAAA,EAAAA,GAAA,KAAApC,IAAA+vB,GAAA,MAAAC,GAAA,SAAA5tB,EAAAA,EAAAA,GAAA,KAAAnC,IAAAgwB,GAAA,MAAAxX,GAAA,QAAAC,GAAA,mBAEhEwX,GAAS,OAAAjqB,EAAAA,EAAAA,GAAAnG,GAAA,mBAATowB,CAAShqB,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,gBAGTiqB,GAAW,OAAAlqB,EAAAA,EAAAA,GAAAjG,GAAA,qBAAXmwB,CAAWjqB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,SAGXwT,GAAI,OAAAzT,EAAAA,EAAAA,GAAAhG,GAAA,cAAJyZ,CAAIxT,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,CAEb6B,MAAAA,GACE,OACEC,IAAAA,cAACooB,GAAsB,CACrBF,UAAWvrB,KAAKurB,UAChBC,YAAaxrB,KAAKwrB,aAGxB,EAGF,SAASC,GAAsBtuB,GAGR,IAHS,YAC9BquB,EAAW,UACXD,GACmBpuB,EAOnB,OANAsM,EAAAA,EAAAA,YAAU,KACiB,iBAAd8hB,IACTG,EAAAA,GAAAA,cAAaC,eAAeJ,EAC9B,GACC,CAACA,IAGFloB,IAAAA,cAAA,OAAKmP,UAAU,aACZ+Y,GAAaC,SAAAA,EAAaxjB,OACzB3E,IAAAA,cAAA,OAAKmP,UAAU,UACbnP,IAAAA,cAAA,WACGmoB,SAAAA,EAAaxjB,OACZ3E,IAAAA,cAAA,MAAImP,UAAU,eACXgZ,EAAYjmB,KAAI,CAAC+V,EAAMxL,IACtBzM,IAAAA,cAAA,MAAIyG,IAAKgG,GACPzM,IAAAA,cAACgT,GAAW,CAACoG,IAAKnB,EAAKmB,KAAMnB,EAAKzK,UAItC,KACH0a,EAAYloB,IAAAA,cAAA,UAAKkoB,GAAkB,MAEtCloB,IAAAA,cAAA,QAAMmC,KAAK,aAEX,KACJnC,IAAAA,cAAA,aAGN,CAlCCuoB,GAAAV,KAAApnB,GAAAqnB,GAAAC,GAAAC,GAAAC,GAAAxX,GAAAC,IAAA1P,GAAA4mB,GAAA3mB,MAAAC,EAAAA,EAAAA,GAAAqnB,GAAA,CArBAlxB,GAAc,2BAA4B,CACzCsY,WAAY,CAACC,GAAAA,MACb,EAECtY,KAAU,gBAGVA,GAAS,CAAE8J,WAAW,IAAQ,kBAG9B9J,GAAS,CAAEyI,QAAQ,IAAQ,oBAPF/F,EAAAA,mBAAgBiH,uDC1B5C,MAAQ5J,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAA+wB,GAAA,IAAA1wB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAA0wB,GAAA,IAAAvvB,QAAAwvB,GAAA,IAAA3wB,QA2B9D,MAAA4wB,WAGsB3uB,EAAAA,iBAAyCC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAsuB,KAAAruB,EAAAA,EAAAA,GAAA,KAAAtC,GAAA8wB,GAAA,QAAAxuB,EAAAA,EAAAA,GAAA,KAAApC,IAAA6wB,GAAA,MAAAC,GAAA,SAAA1uB,EAAAA,EAAAA,GAAA,KAAAnC,IAAA8wB,GAAA,MAAAC,GAAA,SAU7D5uB,EAAAA,EAAAA,GAAA,KAAAsuB,IAAeO,GAAA,MAAIC,IACjBvsB,KAAK4kB,UAAY2H,EAAIzyB,IACrBiG,EAAAA,EAAAA,GAAA+rB,GAAA9rB,KAAKwsB,IAAUtsB,KAAKqsB,EAAI,GACxB,SAXO7H,GAAI,OAAApjB,EAAAA,EAAAA,GAAAnG,GAAA,cAAJupB,CAAInjB,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,cAGJqjB,GAAS,OAAAtjB,EAAAA,EAAAA,GAAAjG,GAAA,mBAATupB,CAASrjB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,CAUlB6B,MAAAA,GACE,OACEC,IAAAA,cAACopB,GAAgB,CACf/H,KAAM1kB,KAAK0kB,KACXE,UAAW5kB,KAAK4kB,UAChBhB,YAAYtiB,EAAAA,EAAAA,GAAKyqB,GAAL/rB,OAGlB,EAOF,SAASysB,GAAgBtvB,GAIC,IAJA,KACxBunB,EAAI,UACJE,EAAS,WACThB,GACsBzmB,EACtB,OACEkG,IAAAA,cAAA,MAAImP,UAAU,OAAOka,KAAK,QACvBhI,aAAI,EAAJA,EAAMnf,KAAKgnB,GACVlpB,IAAAA,cAAA,MACEyG,IAAKyiB,EAAIzyB,GACT4yB,KAAK,MACLla,UAAW4J,KAAW,MAAO,CAAEI,OAAQ+P,EAAIzyB,KAAO8qB,KAElDvhB,IAAAA,cAAA,KAAGoP,QAASA,IAAMmR,EAAW2I,IAAOA,EAAIzX,UAKlD,CAxBC6X,GAAAX,KAAAloB,GAAAmoB,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAAI,GAAAN,IAAAjoB,GAAAwnB,GAAAvnB,MAAAC,EAAAA,EAAAA,GAAAooB,GAAA,CA3BAjyB,GAAc,qBAAsB,CACnCsY,WAAY,CAACC,GAAAA,MACb,EAECtY,GAAS,CAAE8J,WAAW,IAAQ,WAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,gBAG9B7J,GAAM,CAAE8J,KAAM,cAAc,aAAAG,IAAAvD,EAAAA,EAAAA,GAAAhG,GAAAuJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAlG,GAAAuJ,EAAAtD,KAAA,GAAAuD,GAAAinB,GAAAhnB,KAAAC,EAAAA,EAAAA,GAAAF,KAPTzH,EAAAA,mBAAgBiH,KCnC/B,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,8BAADA,EAAC,wCAADA,EAAC,gCAADA,CAAC,MAMb,MAYahR,GAAK,mCAILqR,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,2FCDtCD,EAAAA,EAAAA,gBAAeC,GDDQ,CAAEiR,GAdN,CACjBohB,cAAe,gBACfC,mBAAoB,SACpBC,eAAgB,WAWWnhB,GARV,CACjBihB,cAAe,MACfC,mBAAoB,KACpBC,eAAgB,UCQlB,MAAQryB,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBACrCkyB,IAAiB/gB,EAAAA,EAAAA,WAKrB,aAAc,CACdsK,gBAAiB,iBACjB0W,sBAAuB,0BAGnBjhB,IAAcC,EAAAA,EAAAA,WAAyC,WACvDihB,IAA0BjhB,EAAAA,EAAAA,WAG9B,wBAEIkhB,IAAclhB,EAAAA,EAAAA,WAAyB,WACvCmhB,IAAkBnhB,EAAAA,EAAAA,WAAwC,gBAM1DohB,IAAephB,EAAAA,EAAAA,WACnB,WACA,CACEqhB,cAAe,WAEjB,IAAAC,GAAA,IAAApyB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAoyB,GAAA,IAAAjxB,QAAAkxB,GAAA,IAAAryB,QAwBF,MAAAsyB,WAG6BrwB,EAAAA,iBAAgDC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAgwB,KAAA/vB,EAAAA,EAAAA,GAAA,KAAAtC,GAAAyY,GAAA,QAAAnW,EAAAA,EAAAA,GAAA,KAAApC,IAAAwY,GAAA,MAAA8Z,GAAA,SAAAlwB,EAAAA,EAAAA,GAAA,KAAAnC,IAAAsyB,GAAA,MAAAC,GAAA,SAAApwB,EAAAA,EAAAA,GAAA,KAAAlC,IAAAuyB,GAAA,MAAAC,GAAA,SAAAtwB,EAAAA,EAAAA,GAAA,KAAAjC,IAAAwyB,GAAA,MAAAC,GAAA,SAAAxwB,EAAAA,EAAAA,GAAA,KAAAhC,IAAAyyB,GAAA,MAAAC,GAAA,SAmB3E1wB,EAAAA,EAAAA,GAAA,KAAA/B,IAAA0yB,GAAA,MAAAC,GAAA,SAMA5wB,EAAAA,EAAAA,GAAA,KAAA9B,IAAA2yB,GAAA,MAAAC,GAAA,SAAA9wB,EAAAA,EAAAA,GAAA,KAAA7B,IAAA4yB,GAAA,MAAAC,GAAA,SAOAhxB,EAAAA,EAAAA,GAAA,KAAAgwB,IAAaiB,GAAA,MAAIC,KACf5uB,EAAAA,EAAAA,GAAAytB,GAAAxtB,KAAK4uB,IAAa1uB,KAAKyuB,EAAO,GAC9B,UAhCOjoB,GAAK,OAAApF,EAAAA,EAAAA,GAAAnG,GAAA,eAALuL,CAAKnF,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,YAGL8G,GAAO,OAAA/G,EAAAA,EAAAA,GAAAjG,GAAA,iBAAPgN,CAAO9G,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,kBAGPstB,GAAa,OAAAvtB,EAAAA,EAAAA,GAAAhG,GAAA,uBAAbuzB,CAAattB,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,YAGbutB,GAAO,OAAAxtB,EAAAA,EAAAA,GAAA/F,GAAA,iBAAPuzB,CAAOvtB,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,sBAGPwtB,GAAiB,OAAAztB,EAAAA,EAAAA,GAAA9F,GAAA,2BAAjBuzB,CAAiBxtB,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,yBAGjBytB,GAAoB,OAAA1tB,EAAAA,EAAAA,GAAA7F,GAAA,8BAApBuzB,CAAoBztB,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,qBAMpB0tB,GAAgB,OAAA3tB,EAAAA,EAAAA,GAAA5F,GAAA,0BAAhBuzB,CAAgB1tB,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,eAIhB2tB,GAAU,OAAA5tB,EAAAA,EAAAA,GAAA3F,GAAA,oBAAVuzB,CAAU3tB,IAAAC,EAAAA,EAAAA,GAAA7F,GAAA,KAAA4F,EAAA,CASnB6B,MAAAA,GACE,OACEC,IAAAA,cAAC8rB,GAAuB,CACtBzoB,MAAO1G,KAAK0G,MACZ2B,QAASrI,KAAKqI,QACdtB,UAAUzF,EAAAA,EAAAA,GAAKmsB,GAALztB,MACV8uB,QAAS9uB,KAAK8uB,QACdD,cAAe7uB,KAAK6uB,cACpBI,iBAAkBjvB,KAAKivB,iBACvBC,WAAYlvB,KAAKkvB,WACjBH,kBAAmB/uB,KAAK+uB,kBACxBC,qBAAsBhvB,KAAKgvB,sBAGjC,EAOF,SAASG,GAAuBhyB,GAUC,IAT/BuJ,MAAO0oB,EACP/mB,QAASgnB,EAAQ,cACjBR,EAAa,iBACbI,EAAgB,WAChBC,EAAU,QACVJ,EAAO,kBACPC,EAAiB,qBACjBC,EAAoB,SACpBjoB,GAC6B5J,EAC7B,MAAOmyB,EAAMC,IAAWjoB,EAAAA,EAAAA,WAAS,IAC1BZ,EAAOW,IAAYC,EAAAA,EAAAA,UAAS8nB,IAC5BI,EAAGC,IAAQnoB,EAAAA,EAAAA,UAAS,KACpBe,EAASqnB,IAAcpoB,EAAAA,EAAAA,UAC5B+nB,IAGF5lB,EAAAA,EAAAA,YAAU,KACRimB,EAAWL,EAAS,GACnB,CAACA,IAEJ,MAAMM,GAAete,EAAAA,EAAAA,UAAQ,IACpBhJ,aAAO,EAAPA,EAASse,MAAMiJ,GAAQA,EAAIlpB,QAAUA,KAC3C,CAAC2B,EAAS3B,IAEPmpB,GAAkBxe,EAAAA,EAAAA,UAAQ,IACzBme,GAAMnnB,EAGJA,aAAO,EAAPA,EAASmI,QAAQsf,GACtBA,EAAIhb,MAAMlF,cAAcc,SAAS8e,EAAE5f,iBAH5BvH,GAKR,CAACA,EAASmnB,IAEPO,GAA4B5nB,EAAAA,EAAAA,cAAarE,IAC7CyrB,EAAQzrB,EAAEtD,QACLsD,EAAEtD,QACLivB,EAAK,GACP,GACC,IAEGO,GAAqB3e,EAAAA,EAAAA,UACzB,KACE4e,EAAAA,GAAAA,WAAUC,IACRT,EAAKS,EAAI1vB,OAAO,GACf,MACL,IAGF,OACE6C,IAAAA,cAAC2pB,GAAc,CACbmD,UAAU,eACVC,QAAQ,QACR5T,OAAQ8S,EACRe,OAAO,EACPC,SAAU,EACVrD,sBAAuB8C,GAEvB1sB,IAAAA,cAAA,QAAMktB,KAAK,SAAS/d,UAAU,WAC5BnP,IAAAA,cAAA,QAAMmP,UAAU,QAAQ5L,MAAO,CAAE4pB,SAAU3B,IACxCc,EAAeA,aAAY,EAAZA,EAAc7a,MAAQjJ,GAAEL,GAAEqhB,gBAE5CxpB,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,SAASC,KAAM2c,EAAO,aAAe,kBAExDjsB,IAAAA,cAAA,OAAKmP,UAAU,WAAW5L,MAAO,CAAE4pB,SAAUvB,IAC1CC,GACC7rB,IAAAA,cAAA,OAAKmP,UAAU,oBACbnP,IAAAA,cAACgqB,GAAY,CACX7a,UAAU,SACV9L,MAAO8oB,EACP1mB,YAAaimB,GAAqBljB,GAAEL,GAAEshB,oBACtCQ,cAAe0C,GAEf3sB,IAAAA,cAAC2I,GAAW,CAACukB,KAAK,SAAS7d,IAAI,OAAOC,KAAK,aAIjDtP,IAAAA,cAAC6pB,GAAuB,CACtB4B,QAASA,EACTnO,MAAO,IACP/Z,MAAO,CAAEqE,MAAO,SAEhB5H,IAAAA,cAAA,OAAKmP,UAAU,iBAAiB5L,MAAOooB,GACrC3rB,IAAAA,cAAA,QAAMmC,KAAK,aACRqqB,UAAAA,EAAiB7nB,SAClB3E,IAAAA,cAAC8pB,GAAW,KACT0C,aAAe,EAAfA,EAAiBtqB,KAAKqqB,GACrBvsB,IAAAA,cAAC+pB,GAAe,CACdtjB,IAAK8lB,EAAIlpB,MACTmH,SAAU+hB,EAAI/hB,SACd2E,UAAW9L,IAAUkpB,EAAIlpB,MAAQ,cAAWwE,EAC5CuH,QAAU3O,IACRA,EAAEkG,iBACFlG,EAAEmG,kBACFslB,GAAQ,GACJ7oB,IAAUkpB,EAAIlpB,QAChBW,EAASuoB,EAAIlpB,OACbK,EAAS6oB,GACX,GAGDA,EAAI9a,YAKX+a,SAAAA,EAAiB7nB,SACjB3E,IAAAA,cAAA,OAAKmP,UAAU,SAAS3G,GAAEL,GAAEuhB,oBAO1C,CAzHC0D,GAAA/C,KAAA5pB,GAAA8P,GAAAC,GAAA8Z,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAA8B,GAAAhC,IAAArqB,GAAAkpB,GAAAjpB,MAAAC,EAAAA,EAAAA,GAAAksB,GAAA,CAtDA/1B,GAAc,4BAA6B,CAC1CsY,WAAY,CAACC,GAAAA,MACb,EAECtY,KAAU,YAGVA,GAAS,CAAE8J,WAAW,IAAQ,cAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,oBAG9B9J,GAAS,CAAE+J,KAAMC,UAAU,cAG3BhK,GAAS,CAAE8J,WAAW,IAAQ,wBAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,2BAM9B9J,GAAS,CAAE8J,WAAW,IAAQ,uBAI9B9J,GAAS,CAAE+J,KAAMC,UAAU,iBAG3B/J,GAAM,CAAE8J,KAAM,WAAW,gBAAAG,IAAAvD,EAAAA,EAAAA,GAAA1F,GAAAiJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA5F,GAAAiJ,EAAAtD,KAAA,GAAAuD,GAAA2oB,GAAA1oB,KAAAC,EAAAA,EAAAA,GAAAF,KA7BCzH,EAAAA,mBAAgBiH,gCC/EtC,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,oBAADA,CAAC,MAIb,MAQahR,GAAK,qCAILqR,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,6JCPlC6N,GAAU,CAAC,EAEfA,GAAQsoB,kBAAoB,KAC5BtoB,GAAQuoB,cAAgB,KACxBvoB,GAAQwoB,OAAS,UAAc,KAAM,QACrCxoB,GAAQyoB,OAAS,KACjBzoB,GAAQ0oB,mBAAqB,KAEhB,KAAI,KAAS1oB,IAKnB,SAAe,MAAW,KAAQ2oB,OAAS,KAAQA,YAAS9lB,oDCUnE3Q,EAAAA,EAAAA,gBAAeC,GFlBQ,CAAEiR,GAVN,CACjB0K,SAAU,YASiBvK,GANV,CACjBuK,SAAU,SEyBZ,MAAMnK,IAAcC,EAAAA,EAAAA,WAAyC,WACvDglB,IAAmBhlB,EAAAA,EAAAA,WACvB,iBAEIilB,IAAkBjlB,EAAAA,EAAAA,WAAqC,gBACvDklB,IAAoBllB,EAAAA,EAAAA,WACxB,mBAGMvR,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAs2B,GAAA,IAAAj2B,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAi2B,GAAA,IAAAj2B,QAWvD,MAAAk2B,WAIUj0B,EAAAA,iBAEVC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAtC,GAAAo2B,GAAA,QAAA9zB,EAAAA,EAAAA,GAAA,KAAApC,IAAAm2B,GAAA,MAAAC,GAAA,SAOEh0B,EAAAA,EAAAA,GAAA,KAAA4zB,IAAOK,GAAA,OAAGC,EAAAA,GAAAA,aAAW,WALZC,GAAM,OAAAtwB,EAAAA,EAAAA,GAAAnG,GAAA,gBAANy2B,CAAMrwB,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,QAGNkb,GAAG,OAAAnb,EAAAA,EAAAA,GAAAjG,GAAA,aAAHohB,CAAGlb,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,CAIZ6B,MAAAA,GACE,OACEC,IAAAA,cAACwuB,EAAAA,SAAQ,CACPvJ,SACEjlB,IAAAA,cAAC2I,GAAW,CACV0G,IAAI,OACJC,KAAK,qBACLkK,UAAQ,EACRrK,UAAWsf,GAAOhD,WAItBzrB,IAAAA,cAAC0uB,GAAyB,CACxBC,QAAQ1wB,EAAAA,EAAAA,GAAK+vB,GAALrxB,MACR4xB,OAAQ5xB,KAAK4xB,OACbnV,IAAKzc,KAAKyc,MAIlB,EAOF,SAASsV,GAAyB50B,GAIC,IAJA,OACjC60B,EAAM,OACNJ,EAAM,IACNnV,GAC+Btf,EAC/B,MAAM80B,GAAsB5gB,EAAAA,EAAAA,UAAQ,IAC7BugB,EAiGThb,eAAqBgb,GACnB,MAAMM,QAAeC,EAAAA,GAAAA,KAErB,aADqBD,EAAOE,MAAMR,EAEpC,CAlGWQ,CAAMR,GAAQtX,OAAOZ,IAE1BC,QAAQD,MAAM,wBAAyBA,GAChC,QALA1I,QAAQC,QAAQ,OAOxB,CAAC2gB,IAEES,GAAeC,EAAAA,EAAAA,KAAIL,GAEnBM,GAAyBlhB,EAAAA,EAAAA,UAAQ,IAChCghB,GAGEG,EAAAA,GAAAA,GAAWH,EAAc,CAC9BL,SACAS,UAAU,IACTnY,OAAOZ,IAERC,QAAQD,MAAM,0BAA2BA,GAClC,QARA1I,QAAQC,QAAQ,OAUxB,CAACohB,EAAcL,IAEZU,GAAkBJ,EAAAA,EAAAA,KAAIC,GAEtBI,GAAYthB,EAAAA,EAAAA,UAAQ,KAAMuhB,EAAAA,GAAAA,GAAaP,IAAe,CAACA,IAE7D,OACEhvB,IAAAA,cAACwvB,GAAe,CACdb,OAAQA,EACRzG,UAAWoH,EACXD,gBAAiBA,EACjBjW,IAAKA,GAGX,CASA,SAASoW,GAAezY,GAKC,IALA,OACvB4X,EAAM,UACNzG,EAAS,gBACTmH,EAAe,IACfjW,GACqBrC,EACrB,MAAM3T,GAAee,EAAAA,EAAAA,QAAuB,MACtCqQ,GAAUrQ,EAAAA,EAAAA,QAEN,MA4BV,OA1BAiC,EAAAA,EAAAA,YAAU,KACR,MAAMa,EAAY7D,EAAa7D,QAC/B,IAAK0H,EACH,OAEF,MAAMwoB,GAASC,EAAAA,GAAAA,GAAaf,GACtBrX,GAAOqY,EAAAA,GAAAA,qBAAoB1oB,EAAW,CAC1CwoB,SACAG,qBAAqB,IAGvB,OADApb,EAAQjV,QAAU+X,EACX,KACLA,EAAKuY,UACLJ,EAAO3iB,SACP0H,EAAQjV,QAAU,IAAI,CACvB,GACA,CAACovB,KAEJvoB,EAAAA,EAAAA,YAAU,KAAM,IAAA0pB,EACd,IAAKT,EACH,OAEF,MAAM,MAAEU,EAAK,QAAEC,EAAO,UAAEC,EAAS,UAAEC,GAAcb,EAClC,QAAfS,EAAAtb,EAAQjV,eAAO,IAAAuwB,GAAfA,EAAiB/vB,OAAOgwB,EAAO,CAAEC,UAASC,YAAWC,YAAW9W,OAAM,GACrE,CAACiW,EAAiBjW,IAGnBpZ,IAAAA,cAAC8tB,GAAiB,CAACpc,KAAK,QAAQvC,UAAWsf,GAAOxnB,WAChDjH,IAAAA,cAAC6tB,GAAe,KACd7tB,IAAAA,cAAC4tB,GAAgB,CACfV,KAAK,YACLhF,UAAWA,GAAa1f,GAAEL,GAAE2K,YAE9B9S,IAAAA,cAAA,OAAKmP,UAAWsf,GAAO0B,KAAM5vB,IAAK6C,EAAc,eAAcurB,KAItE,CA3GCyB,GAAAnC,KAAAxtB,GAAAytB,GAAAC,GAAAC,GAAAC,IAAArtB,GAAA+sB,GAAA9sB,MAAAC,EAAAA,EAAAA,GAAAkvB,GAAA,CAnCA/4B,GAAc,8BAA+B,CAC5C8J,eAAe,KACf,EAKC7J,GAAS,CAAE8J,WAAW,IAAQ,aAG9B9J,KAAU,mBANH0C,EAAAA,mBAAgBiH,KCvD1B,MAQa9J,GAAK,kCAIDsR,EAAAA,KAAKC,UAAU,KAAMvR,uDCJtCD,EAAAA,EAAAA,gBAAeC,GDEQ,CAAEiR,GAVN,CACjB,EAS2BG,GANV,CACjB,ICKF,MAAM8nB,IAAcznB,EAAAA,EAAAA,WAAyC,WACvD0nB,IAAgB1nB,EAAAA,EAAAA,WAA+B,cAE7CvR,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAA84B,GAAA,IAAAz4B,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAy4B,GAAA,IAAAt3B,QAAAkxB,GAAA,IAAAryB,QAkB9D,MAAA04B,WAG4Bz2B,EAAAA,iBAA+CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAq2B,KAAAp2B,EAAAA,EAAAA,GAAA,KAAAtC,GAAA44B,GAAA,QAAAt2B,EAAAA,EAAAA,GAAA,KAAApC,IAAA24B,GAAA,MAAAC,GAAA,SAAAx2B,EAAAA,EAAAA,GAAA,KAAAnC,IAAA44B,GAAA,MAAAC,GAAA,SAYzE12B,EAAAA,EAAAA,GAAA,KAAAgwB,IAAa2G,GAAA,MAAItiB,IACf9R,KAAKq0B,UAAYviB,EAASA,EAAOhI,IAAM,MACvC/J,EAAAA,EAAAA,GAAA8zB,GAAA7zB,KAAKs0B,IAAQp0B,KAAK4R,EAAO,GACzB,UAXOqH,GAAK,OAAA7X,EAAAA,EAAAA,GAAAnG,GAAA,eAALge,CAAK5X,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,cAGL8yB,GAAS,OAAA/yB,EAAAA,EAAAA,GAAAjG,GAAA,mBAATg5B,CAAS9yB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,CAUlB6B,MAAAA,GACE,OACEC,IAAAA,cAACkxB,GAAsB,CACrBpb,MAAOnZ,KAAKmZ,MACZkb,UAAWr0B,KAAKq0B,UAChBttB,UAAUzF,EAAAA,EAAAA,GAAKmsB,GAALztB,OAGhB,EAOF,SAASu0B,GAAsBp3B,GAIC,IAJA,MAC9Bgc,EACAkb,UAAWG,EAAa,SACxBztB,GAC4B5J,EAC5B,MAAOk3B,EAAWI,IAAgBntB,EAAAA,EAAAA,UAChCktB,QAAAA,EAAiB,MAEbE,GAAiBltB,EAAAA,EAAAA,SAAO,IAE9BiC,EAAAA,EAAAA,YAAU,KACRgrB,EAAaD,QAAAA,EAAiB,KAAK,GAClC,CAACA,KAEJ/qB,EAAAA,EAAAA,YAAU,KAAM,IAAAkrB,EACTD,EAAe9xB,QAIpBmE,EACEstB,GACkE,QADzDM,EACJxb,aAAK,EAALA,EAAOwN,MAAMrL,IAAUA,EAAKsZ,QAAUtZ,EAAKxR,MAAQuqB,WAAU,IAAAM,EAAAA,EAE9D,MAPJD,EAAe9xB,SAAU,CAQ1B,GACA,CAACyxB,EAAWlb,EAAOpS,IAEtB,MAAM8tB,GAAgBxjB,EAAAA,EAAAA,UAAQ,IACrB8H,aAAK,EAALA,EAAO3I,QACX8K,IAAWA,EAAKsZ,SAAWP,GAAc/Y,EAAKxR,MAAQuqB,KAExD,CAAClb,EAAOkb,IAEX,OACEhxB,IAAAA,cAAA,OAAKmP,UAAU,oBACZqiB,aAAa,EAAbA,EAAetvB,KAAK+V,IACnB,MAAM,KAAEzK,EAAI,KAAE8B,EAAI,IAAE7I,GAAQwR,EAC5B,OACEjY,IAAAA,cAACswB,GAAa,CACZ7pB,IAAKA,EACL0I,UAAW,UAAS6hB,EAAY,UAAY,IAC5CS,aAAa,QACbpwB,KAAK,UACL+N,QAASA,KACF4hB,GACHI,EAAa3qB,EACf,GAGD6I,EAAOtP,IAAAA,cAACqwB,IAAWnoB,EAAAA,GAAAA,GAAA,CAACiH,UAAU,QAAWG,IAAW,KACpD9B,EACAwjB,EACChxB,IAAAA,cAACqwB,GAAW,CACVlhB,UAAU,SACVE,IAAI,SACJC,KAAK,IACLF,QAAU3O,IACRA,EAAEmG,kBACFnG,EAAEkG,iBACFyqB,EAAa,KAAK,IAGpB,KACU,IAK1B,CA1ECM,GAAAjB,KAAAhwB,GAAAiwB,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAAU,GAAAZ,IAAA/vB,GAAAuvB,GAAAtvB,MAAAC,EAAAA,EAAAA,GAAAwwB,GAAA,CA7BAr6B,GAAc,2BAA4B,CACzCsY,WAAY,CAACC,GAAAA,MACb,EAECtY,GAAS,CACR8J,WAAW,IACX,YAGD9J,KAAU,gBAGVC,GAAM,CAAE8J,KAAM,WAAW,WAAAG,IAAAvD,EAAAA,EAAAA,GAAAhG,GAAAuJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAlG,GAAAuJ,EAAAtD,KAAA,GAAAuD,GAAA2oB,GAAA1oB,KAAAC,EAAAA,EAAAA,GAAAF,KATAzH,EAAAA,mBAAgBiH,KCrCrC,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,kCAADA,EAAC,gCAADA,EAAC,oCAADA,EAAC,oBAADA,CAAC,MAOb,MAcahR,GAAK,kCAELC,GAAU,CAAEgR,GAhBN,CACjBwpB,gBAAiB,YACjBC,eAAgB,UAChBC,iBAAkB,YAClB3f,SAAU,YAYiB5J,GATV,CACjBqpB,gBAAiB,MACjBC,eAAgB,MAChBC,iBAAkB,MAClB3f,SAAU,QAOC3J,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,gCCxBtC,IAAI46B,ICmBJ76B,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAMuR,IAAcC,EAAAA,EAAAA,WAAyC,WACvDqK,IAAyBrK,EAAAA,EAAAA,WAK7B,sBAAuB,CACvBE,cAAe,eACfoK,gBAAiB,mBAEbC,IAAuBvK,EAAAA,EAAAA,WAC3B,qBAEIopB,IAAgBppB,EAAAA,EAAAA,WAA+B,aAuC/CqpB,GAAU,CACdC,MAAO,iBACPC,QAAS,gBACTC,UAAW,gBAGPC,GAAwB,CAC5B,CACE5rB,IAAK,QACL6I,KAAM,CACJA,KAAM,iBACND,IAAK,UACLijB,SAAU,kBAEZ9kB,KAAMhF,GAAEL,GAAEypB,kBAEZ,CACEnrB,IAAK,UACL6I,KAAM,CACJA,KAAM,gBACND,IAAK,UACLijB,SAAU,kBAEZ9kB,KAAMhF,GAAEL,GAAE0pB,iBAEZ,CACEprB,IAAK,YACL6I,KAAM,CACJA,KAAM,eACND,IAAK,UACLijB,SAAU,kBAEZ9kB,KAAMhF,GAAEL,GAAE2pB,oBAIP,SAASS,GAAYz4B,GAWN,IAXO,SAC3B04B,EAAQ,QACRC,EAAO,UACPC,EAAS,eACTC,EAAc,cACdC,EAAa,QACbxjB,EAAO,UACPyjB,EAAS,cACTC,EAAa,oBACbC,EAAmB,SACnBC,GACkBl5B,EAClB,MAAM,MACJ4f,EACAjjB,GAAIw8B,EAAY,MAChB3Z,EAAK,cACLtC,EAAa,MACbkc,EAAK,QACLC,GACEX,EAMEnsB,GAAiBlC,EAAAA,EAAAA,SAAO,GAExBmC,GAAyBxB,EAAAA,EAAAA,cAAY,KACzCuB,EAAe9G,SAAU,CAAI,GAC5B,IAEGgH,GAAuBzB,EAAAA,EAAAA,cAAY,KACvCuB,EAAe9G,SAAU,CAAK,GAC7B,KAEI6zB,EAASC,IAAcpvB,EAAAA,EAAAA,WAAS,GAEjCqvB,GAAcxuB,EAAAA,EAAAA,cAAY,KAC9BuuB,GAAW,EAAK,GACf,IAEGE,GAAazuB,EAAAA,EAAAA,cAChBrE,IACC4yB,GAAW,GACX,MAAMhwB,EAAQ5C,EAAEqL,cAAcY,aAE1BymB,GAAY9vB,SAAAA,EAAOmwB,OAKT,OAAVnwB,GAAkBiW,IAAUjW,IAC9BuvB,SAAAA,EAAgBvvB,IALhB0vB,SAAAA,GAMF,GAEF,CAACI,EAAS7Z,EAAOyZ,EAAqBH,IAGlCpsB,GAAgB1B,EAAAA,EAAAA,cACnBrE,IACK4F,EAAe9G,SAIL,UAAVkB,EAAEgG,MACJhG,EAAEkG,iBACFlG,EAAEqL,cAAc2nB,OAClB,GAEF,IAGIC,GAAWvvB,EAAAA,EAAAA,QAAwB,MAQzC,OANAiC,EAAAA,EAAAA,YAAU,KACK,IAAAutB,EAATR,IACc,QAAhBQ,EAAAD,EAASn0B,eAAO,IAAAo0B,GAAhBA,EAAkBpvB,QACpB,GACC,CAAC4uB,IAGFnzB,IAAAA,cAAA,OACEmP,UAAW4J,KACT,YACAyZ,EAAS9Y,MACT,CAAE0Z,WACF,CAAEja,OAAQ6Z,IAEZzvB,MAAO,CACLqwB,YAAuC,IAAtBpB,EAASqB,MAAQ,GAArB,QACVnB,GAELtjB,QAAS+jB,OAAUtrB,EAAYuH,GAE/BpP,IAAAA,cAAA,OAAKmP,UAAU,SACbnP,IAAAA,cAACiT,GAAsB,CACrB1F,QAAS8kB,GACT7nB,SAAU2oB,EACVrqB,cAAgBrI,IA7EIgO,QA8EChO,EAAEtD,OA7E7Bw1B,SAAAA,EAAiBlkB,EAAOhI,IA6EY,GAG9BzG,IAAAA,cAAC2I,GAAW,CACVwG,UAAU,OACVE,IAAI,UACJijB,SAAS,iBACThjB,KAAM2iB,GAAQvY,GACdtK,QAAU3O,GAAMA,EAAEmG,qBAItB5G,IAAAA,cAAA,QAAMmP,UAAU,gBAAgB5L,MAAO,CAAEqE,MAAO6qB,IAAW,IACvDU,EAAU,GAAKF,GAEnBjzB,IAAAA,cAAA,QACEmP,UAAU,QACV5O,IAAKmzB,EACLtkB,QAAU3O,GAAMA,EAAEmG,kBAClBktB,QAASR,EACTS,OAAQR,EACR3vB,UAAW4C,EACX3C,mBAAoByC,EACpBxC,iBAAkByC,EAClBytB,iBD5NRC,GC4N4C,ED1NrCA,EAZT,WACE,GAAyB,kBAAdlC,GAAyB,CAClC,MAAMmC,EAAM9uB,SAASC,cAAc,OACnC6uB,EAAI5uB,aAAa,kBAAmB,kBACpCysB,GAAoC,mBAAxBmC,EAAIF,eAClB,CACA,OAAOjC,EACT,CAMMoC,GACE,iBACA,OACF,SCuNIC,gCAA8B,GAE7B9a,IAGLtZ,IAAAA,cAAA,OAAKmP,UAAU,OACbnP,IAAAA,cAAA,OAAKmP,UAAU,QACbnP,IAAAA,cAAA,OAAKmP,UAAU,WACbnP,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,UAAUijB,SAAS,SAAShjB,KAAK,YAClDtP,IAAAA,cAAA,QAAMmP,UAAU,SAAS6H,GAAiB,IAE5ChX,IAAAA,cAACmT,GAAoB,CACnB6L,iBAAkBkU,aAAK,EAALA,EAAOld,WACzBtE,KAAK,WAGT1R,IAAAA,cAAA,OAAKmP,UAAU,YAAYC,QAAU3O,GAAMA,EAAEmG,mBACvB,IAAnB4rB,EAASqB,OACR7zB,IAAAA,cAACgyB,GAAa,CACZ7iB,UAAU,eACVsiB,aAAa,QACbpwB,KAAK,UACLqQ,KAAK,QACLtC,QAAS0jB,GAET9yB,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,SAASC,KAAK,WAGjC6jB,GACAnzB,IAAAA,cAACgyB,GAAa,CACZ7iB,UAAU,WACVsiB,aAAa,QACbpwB,KAAK,UACLqQ,KAAK,QACLtC,QAASyjB,GAERrqB,GAAEL,GAAEgK,cDlQZ,IACL8hB,CCwQF,qFCpQA/8B,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAQC,cAAa,GAAEC,SAAQ,GAAEC,MAAK,GAAEC,OAAMA,KAAKC,EAAAA,EAAAA,oBAE7CkR,IAAcC,EAAAA,EAAAA,WAAyC,WAQvDyrB,IAAwB18B,EAAAA,EAAAA,YAAW28B,IAEzC,IAAAC,GAAA,IAAAz8B,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAy8B,GAAA,IAAAt7B,QAAAu7B,GAAA,IAAA18B,QAAAI,GAAA,IAAAJ,QAAA28B,GAAA,IAAA38B,QAAAK,GAAA,IAAAL,QAAA48B,GAAA,IAAA58B,QAAAM,GAAA,IAAAN,QAAA68B,GAAA,IAAA78B,QAAA+B,GAAA,IAAA/B,QAIA,MAAA88B,WAG2B76B,EAAAA,iBAA8CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAq6B,KAAAp6B,EAAAA,EAAAA,GAAA,KAAAtC,IAAAuC,GAAA,MAAAy6B,GAAA,SAAA16B,EAAAA,EAAAA,GAAA,KAAApC,IAAA+8B,GAAA,MAAAC,GAAA,SAAA56B,EAAAA,EAAAA,GAAA,KAAAnC,IAAAg9B,GAAA,MAAArE,GAAA,SAAAx2B,EAAAA,EAAAA,GAAA,KAAAlC,IAAA24B,GAAA,MAAAqE,GAAA,SAgBvE96B,EAAAA,EAAAA,GAAA,KAAAq6B,IAAgBU,GAAA,MAAIld,KAClBvb,EAAAA,EAAAA,GAAA83B,GAAA73B,KAAKy4B,IAAgBv4B,KAAKob,EAAK,KAC/B7d,EAAAA,EAAAA,GAAA,KAAAjC,GAAAk9B,GAAA,QAIFj7B,EAAAA,EAAAA,GAAA,KAAAs6B,IAAuBY,GAAA,MAAIrd,KACzBvb,EAAAA,EAAAA,GAAA83B,GAAA73B,KAAK44B,IAAuB14B,KAAKob,EAAK,KACtC7d,EAAAA,EAAAA,GAAA,KAAAhC,GAAAo9B,GAAA,QAIFp7B,EAAAA,EAAAA,GAAA,KAAAu6B,IAAkBc,GAAA,MAAIxd,KACpBvb,EAAAA,EAAAA,GAAA83B,GAAA73B,KAAK+4B,IAAsB74B,KAAKob,EAAK,KACrC7d,EAAAA,EAAAA,GAAA,KAAA/B,GAAAs9B,GAAA,QAIFv7B,EAAAA,EAAAA,GAAA,KAAAw6B,IAAcgB,GAAA,MAAI3d,KAChBvb,EAAAA,EAAAA,GAAA83B,GAAA73B,KAAKk5B,IAAkBh5B,KAAKob,EAAK,KAGnC7d,EAAAA,EAAAA,GAAA,KAAAN,IAAOiE,EAAAA,EAAAA,aAAyB,aAlCvB+3B,GAAQ,OAAA73B,EAAAA,EAAAA,GAAAnG,GAAA,kBAARg+B,CAAQ53B,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,cAKRw0B,GAAS,OAAAz0B,EAAAA,EAAAA,GAAAjG,GAAA,mBAAT06B,CAASx0B,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,cAGT8yB,GAAS,OAAA/yB,EAAAA,EAAAA,GAAAhG,GAAA,mBAAT+4B,CAAS9yB,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,CA6BlB63B,eAAAA,CAAgBC,EAAmBzd,GAAmB,IAAAlZ,EACnC,QAAjBA,GAAApB,EAAAA,EAAAA,GAAKnE,GAAL6C,MAAU4C,eAAO,IAAAF,GAAjBA,EAAmB02B,gBAAgBC,EAAWzd,EAChD,CAEAxY,MAAAA,GACE,OACEC,IAAAA,cAACq0B,GAAqB,CACpB9zB,KAAKtC,EAAAA,EAAAA,GAAKnE,GAAL6C,MACLm5B,SAAUn5B,KAAKm5B,SACfpD,UAAW/1B,KAAK+1B,UAChBE,eAAe30B,EAAAA,EAAAA,GAAK02B,GAALh4B,MACfg2B,gBAAgB10B,EAAAA,EAAAA,GAAKy2B,GAAL/3B,MAChBs5B,aAAah4B,EAAAA,EAAAA,GAAKw2B,GAAL93B,MACbk2B,WAAW50B,EAAAA,EAAAA,GAAK22B,GAALj4B,MACXq0B,UAAWr0B,KAAKq0B,WAGtB,EAcF,SAASsD,GAA2Bvd,EAUlCxW,GACA,IATEu1B,SAAUI,EAAS,UACnBxD,EAAS,cACTE,EAAa,eACbD,EAAc,YACdsD,EAAW,UACXpD,EAAS,UACT7B,GAC2Bja,EAG7B,MAAO+e,EAAUK,IAAelyB,EAAAA,EAAAA,UAASiyB,IAEzC9vB,EAAAA,EAAAA,YAAU,KACR+vB,EAAYD,EAAU,GACrB,CAACA,IAEJ,MAAME,EAAiBA,CACrBne,EACAoe,EACAhzB,EACAizB,KAEA,MAAMC,EAAc,IACfte,EACH,CAACoe,GAAQhzB,GAGX8yB,EACEL,aAAQ,EAARA,EAAU5zB,KAAKswB,GACbA,EAASxc,aAAeugB,EAAYvgB,WAAaugB,EAAc/D,KAInE8D,SAAAA,EAAWC,EAAY,GA0CzBjyB,EAAAA,EAAAA,qBACE/D,GACA,KAAM,CACJw1B,gBAAiBA,CAACC,EAAmBzd,KACnC4d,GAAate,GACXA,aAAQ,EAARA,EAAU3V,KAAKs0B,GACbA,EAAKxgB,aAAeggB,EAChB,IAAKzd,EAASsb,MAAO2C,EAAK3C,OAC1B2C,KAEP,KAGL,IAGF,MAAM/D,GAAUzkB,EAAAA,EAAAA,UAAQ,KAAM,IAAAyoB,EAG5B,OAAO,KADqD,QADjDA,EACTX,aAAQ,EAARA,EAAUY,QAAO,CAAC3wB,EAAKkS,IAASnS,KAAKC,IAAIA,EAAKkS,EAAKxhB,KAAK,UAAE,IAAAggC,EAAAA,EAAI,GAC7C//B,WAAWiO,OAAS,EAAE,GACxC,CAACmxB,IAEJ,OAAKA,EASH91B,IAAAA,cAAA,OAAKmP,UAAU,kBACZ2mB,aAAQ,EAARA,EAAU5zB,KAAK+V,GACdjY,IAAAA,cAACuyB,GAAY,CACX9rB,IAAKwR,EAAKjC,WACVgd,SAAUhC,IAAc/Y,EAAKjC,WAC7Bwc,SAAUva,EACVwa,QAASA,EACTC,UAAWA,EACXE,cAAgB10B,GA9EEy4B,EAACC,EAAkB3e,KAC3Cme,EAAene,EAAM,QAAS2e,EAAUhE,EAAc,EA6E1B+D,CAAkBz4B,EAAG+Z,GAC3C0a,eAAiBz0B,GA3EE24B,EAACC,EAAsB7e,KAChDme,EAAene,EAAM,QAAS6e,EAAWnE,EAAe,EA0E3BkE,CAAmB34B,EAAG+Z,GAC7C4a,UAAWA,IAAMA,aAAS,EAATA,EAAY5a,GAC7B7I,QAASA,IAAM6mB,aAAW,EAAXA,EAAche,GAC7B6a,cAAeA,IA1EI7a,KACzB,MAAM8e,EAAqB,CACzB/gB,YAGMsY,EAAAA,GAAAA,UAAS,YACf6E,SAAS,EACT18B,GAAI,EACJ6iB,MAAO,GACPI,MAAO,QACPma,MAAO,EACPmD,gBAAiB/e,EAAKjC,YAExBmgB,GAAate,IAAa,IAAAof,EACxB,MAAMxqB,EAC8D,QADzDwqB,EACTpf,aAAQ,EAARA,EAAUqf,WAAWV,GAASA,EAAKxgB,aAAeiC,EAAKjC,oBAAW,IAAAihB,EAAAA,GACjE,EACH,IAAe,IAAXxqB,EAAc,OAAOoL,EACzB,MAAMsf,EACJtf,EAAU1L,MAAMM,EAAQ,GAAGyqB,WAAWV,GAAwB,IAAfA,EAAK3C,QAAe,EACrE,OAAoB,IAAhBsD,EACK,IAAItf,EAAWkf,GAEjB,IACFlf,EAAU1L,MAAM,EAAGM,EAAQ0qB,GAC9BJ,KACGlf,EAAU1L,MAAMM,EAAQ0qB,GAC5B,GACD,EA8CyBC,CAAkBnf,GACvC8a,oBAAqBA,KACnBoD,GAAate,GACXA,aAAQ,EAARA,EAAU1K,QAAQqpB,GAASA,EAAKxgB,aAAeiC,EAAKjC,cACrD,OAvBPhW,IAAAA,cAAA,OAAKmP,UAAU,WACbnP,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,OAAOC,KAAK,qBAAqBkK,UAAQ,IA4BlE,CA/IC6d,GAAAxC,KAAAp0B,GAAAq0B,GAAAC,GAAAC,GAAAC,GAAArE,GAAAC,GAAAqE,GAAAE,GAAAkC,GAAAnC,GAAAE,GAAAE,GAAAgC,GAAAjC,GAAAE,GAAAE,GAAA8B,GAAA/B,GAAAE,GAAAE,GAAA4B,GAAA7B,GAAAv7B,IAAA2G,GAAAuzB,GAAAtzB,MAAAC,EAAAA,EAAAA,GAAAm2B,GAAA,CA9DAhgC,GAAc,2BAA4B,CACzCsY,WAAY,CAACC,GAAAA,EAAW8nB,GAAAA,MACxB,EAECpgC,GAAS,CACR8J,WAAW,IACX,eAGD9J,GAAS,CACR8J,WAAW,IACX,gBAGD9J,KAAU,gBAGVC,GAAM,CAAE8J,KAAM,eAAe,mBAAAG,IAAAvD,EAAAA,EAAAA,GAAA/F,GAAAsJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAjG,GAAAsJ,EAAAtD,IAAA,CAM7B3G,GAAM,CAAE8J,KAAM,uBAAuB,0BAAAG,IAAAvD,EAAAA,EAAAA,GAAA9F,GAAAqJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAhG,GAAAqJ,EAAAtD,IAAA,CAMrC3G,GAAM,CAAE8J,KAAM,sBAAsB,yBAAAG,IAAAvD,EAAAA,EAAAA,GAAA7F,GAAAoJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA/F,GAAAoJ,EAAAtD,IAAA,CAMpC3G,GAAM,CAAE8J,KAAM,kBAAkB,qBAAAG,IAAAvD,EAAAA,EAAAA,GAAA5F,GAAAmJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA9F,GAAAmJ,EAAAtD,IAAA,CAQhC1G,KAAQ,yBAAAiK,GAAA3H,GAAA4H,KAAAC,EAAAA,EAAAA,GAAAF,KAxCgBzH,EAAAA,mBAAgBiH,mBCtCpC,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,kCAADA,CAAC,MAIb,MAQahR,GAAK,yCAILqR,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,+ECUtCD,EAAAA,EAAAA,gBAAeC,GDZQ,CAAEiR,GAVN,CACjBuvB,gBAAiB,mBASUpvB,GANV,CACjBovB,gBAAiB,UCmBnB,MAAM3kB,IAAcpK,EAAAA,EAAAA,WAA2B,WACzCD,IAAcC,EAAAA,EAAAA,WAAyC,WACvDgvB,IAAgBhvB,EAAAA,EAAAA,WACpB,qBAEIwK,IAAqBxK,EAAAA,EAAAA,WAKzB,kBAAmB,CACnBE,cAAe,eACfoK,gBAAiB,oBAGX7b,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAAogC,GAAA,IAAA//B,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAA+/B,GAAA,IAAA5+B,QAAA6+B,GAAA,IAAAhgC,QAAAK,GAAA,IAAAL,QAAAmiB,GAAA,IAAAniB,QAgC9D,MAAAigC,WAIUh+B,EAAAA,iBAEVC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA29B,KAAA19B,EAAAA,EAAAA,GAAA,KAAAtC,GAAA4oB,GAAA,QAAAtmB,EAAAA,EAAAA,GAAA,KAAApC,IAAA2oB,GAAA,MAAAsF,GAAA,SAAA7rB,EAAAA,EAAAA,GAAA,KAAAnC,IAAAiuB,GAAA,MAAA+R,GAAA,SAAA79B,EAAAA,EAAAA,GAAA,KAAAlC,IAAAggC,GAAA,MAAAC,GAAA,SAAA/9B,EAAAA,EAAAA,GAAA,KAAAjC,IAAAigC,GAAA,MAAAC,GAAA,SAgBEj+B,EAAAA,EAAAA,GAAA,KAAA29B,IAAgBO,GAAA,MAAIC,KAClB77B,EAAAA,EAAAA,GAAAo7B,GAAAn7B,KAAK67B,IAAW37B,KAAK07B,EAAa,KAClCn+B,EAAAA,EAAAA,GAAA,KAAAhC,GAAAikB,GAAA,QAKFjiB,EAAAA,EAAAA,GAAA,KAAA8f,IAAkBoC,GAAA,MAAInf,KACpBT,EAAAA,EAAAA,GAAAo7B,GAAAn7B,KAAK4f,IAAa1f,KAAKM,EAAO,GAC9B,SAvBOiZ,GAAI,OAAAnY,EAAAA,EAAAA,GAAAnG,GAAA,cAAJse,CAAIlY,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,gBAGJkoB,GAAW,OAAAnoB,EAAAA,EAAAA,GAAAjG,GAAA,qBAAXouB,CAAWloB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,YAGXqP,GAAO,OAAAtP,EAAAA,EAAAA,GAAAhG,GAAA,iBAAPsV,CAAOrP,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,UAGPu6B,GAAK,OAAAx6B,EAAAA,EAAAA,GAAA/F,GAAA,eAALugC,CAAKv6B,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,CAgBd6B,MAAAA,GACE,OACEC,IAAAA,cAAC04B,GAA6B,CAC5BtiB,KAAMzZ,KAAKyZ,KACXgQ,YAAazpB,KAAKypB,YAClB7Y,QAAS5Q,KAAK4Q,QACdkrB,MAAO97B,KAAK87B,MACZE,aAAa16B,EAAAA,EAAAA,GAAK85B,GAALp7B,MACbmM,eAAe7K,EAAAA,EAAAA,GAAKic,GAALvd,OAGrB,EAQF,SAAS+7B,GAA6B5+B,GAOC,IAPA,KACrCsc,EAAI,YACJgQ,EAAW,QACX7Y,EAAO,MACPkrB,EAAK,YACLE,EAAW,cACX7vB,GACmChP,EACnC,OAAKsc,EASHpW,IAAAA,cAAA,UACGoW,EAAKlU,KAAK+V,GACTjY,IAAAA,cAAA,MAAImP,UAAU,OAAO1I,IAAKwR,EAAKja,gBAC7BgC,IAAAA,cAAC44B,GAAgB,CACfL,aAActgB,EACdmO,YAAaA,EACb7Y,QAASA,EACTkrB,MAAOA,EACPE,YAAaA,EACb7vB,cAAeA,QAhBrB9I,IAAAA,cAAA,OAAKmP,UAAU,WACbnP,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,OAAOC,KAAK,qBAAqBkK,UAAQ,IAqBlE,CAUA,SAASof,GAAgB7hB,GAOC,IAAA8hB,EAAA,IAPA,aACxBN,EAAY,YACZnS,EAAW,QACX7Y,EAAO,MACPkrB,EAAK,YACLE,EAAW,cACX7vB,GACsBiO,EACtB,MAAM+hB,GAAU30B,EAAAA,EAAAA,QAAuB,MACjCya,EAAWnW,EAAAA,KAAKmW,SAASC,MAAM,KAAK,IAI1CzY,EAAAA,EAAAA,YAAU,KACR,MAAM2yB,EAAKD,EAAQv5B,QACnB,IAAKw5B,EAAI,OACT,MAAMC,EAAev4B,IACnBA,EAAEmG,kBACFnG,EAAEkG,iBACFgyB,EAAYJ,EAAa,EAG3B,OADAQ,EAAGE,iBAAiB,QAASD,GACtB,KACLD,EAAGG,oBAAoB,QAASF,EAAY,CAC7C,GACA,CAACT,EAAcI,IAElB,MAAOzhB,EAAgBC,IAAqBlT,EAAAA,EAAAA,WAAS,GAErD,OACEjE,IAAAA,cAACgT,GAAW,CACV7D,UAAW4J,KAAW,OAAQ,CAAE,iBAAkB7B,IAClDkC,KAAKC,EAAAA,GAAAA,GAAc+M,EAAamS,IAEhCv4B,IAAAA,cAAA,OAAKmP,UAAU,QACbnP,IAAAA,cAAA,OAAKmP,UAAU,UACbnP,IAAAA,cAAC2I,GAAW,CACVwG,UAAU,OACVE,IAAI,UACJijB,SAAS,SACThjB,KAAK,UAEPtP,IAAAA,cAAA,OAAKmP,UAAU,SAASopB,EAAajf,QAEtCif,EAAarT,aACZllB,IAAAA,cAAA,OAAKmP,UAAU,eAAeopB,EAAarT,cAG9CuT,GACCz4B,IAAAA,cAAA,OACEmP,UAAW4J,KAAW,OAAQ,CAC5BogB,QAASZ,EAAaa,iBAExB74B,IAAKu4B,GAEJP,EAAaa,eACqD,QADvCP,EACxBJ,EAAMnV,MAAM+V,GAAMA,EAAErjB,aAAeuiB,EAAaa,wBAAe,IAAAP,OAAA,EAA/DA,EACIvf,MACJ9Q,GAAEL,GAAEwvB,kBAGZ33B,IAAAA,cAAC43B,GAAa,CACZzoB,UAAU,SACVuC,KAAK,QACLsN,iBAAkBuZ,EAAae,WAEjCt5B,IAAAA,cAAA,OAAKmP,UAAW,mBAAmByP,KACjC5e,IAAAA,cAACoT,GAAkB,CACjBjE,UAAU,UACV5B,QAASA,EACTzE,cAAgBrI,IACdqI,EAAc,CAAE2F,OAAQhO,EAAEtD,OAAQ8a,KAAMsgB,GAAe,EAEzDrlB,gBAAkBzS,IAChB0W,EAAkB1W,EAAEtD,OAAO,IAG/B6C,IAAAA,cAAA,OACEmP,UAAU,OACVmK,OACEigB,EAAAA,GAAAA,GAC2B,IAAzBhB,EAAaiB,UACbC,GAAAA,EAAmBC,QAItBH,EAAAA,GAAAA,GAC0B,IAAzBhB,EAAaiB,UACbC,GAAAA,EAAmBE,YAM/B,CA/ICC,GAAA5B,KAAAv3B,GAAAigB,GAAAC,GAAAsF,GAAAC,GAAA+R,GAAAC,GAAAC,GAAAC,GAAAC,GAAAG,GAAAqB,GAAAvB,GAAAjc,GAAAE,GAAA6C,GAAA9C,IAAAtb,GAAA62B,GAAA52B,MAAAC,EAAAA,EAAAA,GAAA04B,GAAA,CA7CAviC,GAAc,kCAAmC,CAChDsY,WAAY,CAACC,GAAAA,MACb,EAKCtY,GAAS,CAAE8J,WAAW,IAAQ,WAG9B9J,KAAU,kBAGVA,GAAS,CAAE8J,WAAW,IAAQ,cAG9B9J,GAAS,CAAE8J,WAAW,IAAQ,YAG9B7J,GAAM,CAAE8J,KAAM,eAAe,cAAAG,IAAAvD,EAAAA,EAAAA,GAAA9F,GAAAqJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAhG,GAAAqJ,EAAAtD,IAAA,CAO7B3G,GAAM,CAAE8J,KAAM,iBAAiB,gBAAAG,IAAAvD,EAAAA,EAAAA,GAAA7F,GAAAoJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA/F,GAAAoJ,EAAAtD,KAAA,GAAAuD,GAAAyY,GAAAxY,KAAAC,EAAAA,EAAAA,GAAAF,KAtBxBzH,EAAAA,mBAAgBiH,yECnD1B,MAAM+R,IAAcpK,EAAAA,EAAAA,WAA2B,WACzCD,IAAcC,EAAAA,EAAAA,WAAyC,WAEvDgvB,IAAgBhvB,EAAAA,EAAAA,WACpB,qBAEIwK,IAAqBxK,EAAAA,EAAAA,WAKzB,kBAAmB,CACnBE,cAAe,eACfoK,gBAAiB,oBAGX7b,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAAqiC,GAAA,IAAAhiC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAgiC,GAAA,IAAA7gC,QAAAf,GAAA,IAAAJ,QAAAmiB,GAAA,IAAAniB,QAAA08B,GAAA,IAAA18B,QAyB9D,MAAAiiC,WAIUhgC,EAAAA,iBAEVC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAA4/B,KAAA3/B,EAAAA,EAAAA,GAAA,KAAAtC,GAAA4oB,GAAA,QAAAtmB,EAAAA,EAAAA,GAAA,KAAApC,IAAA2oB,GAAA,MAAAsF,GAAA,SAAA7rB,EAAAA,EAAAA,GAAA,KAAAnC,IAAAiuB,GAAA,MAAA+R,GAAA,SAAA79B,EAAAA,EAAAA,GAAA,KAAAlC,IAAAggC,GAAA,MAAA7b,GAAA,SAAAjiB,EAAAA,EAAAA,GAAA,KAAAjC,IAAAmkB,GAAA,MAAA2d,GAAA,SAgBE7/B,EAAAA,EAAAA,GAAA,KAAA8f,IAAkBggB,GAAA,MAAI/8B,KACpBT,EAAAA,EAAAA,GAAAq9B,GAAAp9B,KAAK4f,IAAa1f,KAAKM,EAAO,KAGhC/C,EAAAA,EAAAA,GAAA,KAAAq6B,IAAoBxc,KAClBvb,EAAAA,EAAAA,GAAAq9B,GAAAp9B,KAAKw9B,IAAWt9B,KAAKob,EAAK,GAC1B,SApBO7B,GAAI,OAAAnY,EAAAA,EAAAA,GAAAnG,GAAA,cAAJse,CAAIlY,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,gBAGJkoB,GAAW,OAAAnoB,EAAAA,EAAAA,GAAAjG,GAAA,qBAAXouB,CAAWloB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,YAGXqP,GAAO,OAAAtP,EAAAA,EAAAA,GAAAhG,GAAA,iBAAPsV,CAAOrP,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,CAgBhB6B,MAAAA,GACE,OACEC,IAAAA,cAACo6B,GAA0B,CACzBhkB,KAAMzZ,KAAKyZ,KACXgQ,YAAazpB,KAAKypB,YAClB7Y,QAAS5Q,KAAK4Q,QACdzE,eAAe7K,EAAAA,EAAAA,GAAKic,GAALvd,MACfs5B,aAAah4B,EAAAA,EAAAA,GAAKw2B,GAAL93B,OAGnB,EAQF,SAASy9B,GAA0BtgC,GAMC,IANA,KAClCsc,EAAI,YACJgQ,EAAW,QACX7Y,EAAO,cACPzE,EAAa,YACbmtB,GACgCn8B,EAChC,OAAKsc,EASHpW,IAAAA,cAAA,UACGoW,aAAI,EAAJA,EAAMlU,KAAK+V,GACVjY,IAAAA,cAAA,MAAImP,UAAU,OAAO1I,IAAKwR,EAAKjC,YAC7BhW,IAAAA,cAACq6B,GAAa,CACZC,UAAWriB,EACXmO,YAAaA,EACb7Y,QAASA,EACTzE,cAAeA,EACfmtB,YAAaA,QAfnBj2B,IAAAA,cAAA,OAAKmP,UAAU,WACbnP,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,OAAOC,KAAK,qBAAqBkK,UAAQ,IAoBlE,CAUA,SAAS6gB,GAAatjB,GAMC,IANA,UACrBujB,EAAS,YACTlU,EAAW,QACX7Y,EAAO,cACPzE,EAAa,YACbmtB,GACmBlf,EACnB,MAAOG,EAAgBC,IAAqBlT,EAAAA,EAAAA,WAAS,GAErD,OACEjE,IAAAA,cAACgT,GAAW,CACV7D,UAAW4J,KAAW,OAAQ,CAAE,iBAAkB7B,IAClDkC,KAAKC,EAAAA,GAAAA,GAAc+M,EAAakU,GAChClrB,QAASA,IAAM6mB,aAAW,EAAXA,EAAcqE,IAE7Bt6B,IAAAA,cAAA,OAAKmP,UAAU,QACbnP,IAAAA,cAAA,OAAKmP,UAAU,UACbnP,IAAAA,cAAC2I,GAAW,CACVwG,UAAU,OACVE,IAAI,UACJC,KAAK,YACLgjB,SAAS,WAEXtyB,IAAAA,cAAA,QAAMmP,UAAU,SAASmrB,EAAUn4B,MACnCnC,IAAAA,cAAC2I,GAAW,CAACwG,UAAU,aAAaE,IAAI,SAASC,KAAK,eAEvDgrB,EAAUpV,aACTllB,IAAAA,cAAA,OAAKmP,UAAU,eAAemrB,EAAUpV,cAG5CllB,IAAAA,cAAA,OAAKmP,UAAU,SACZoqB,EAAAA,GAAAA,GAA8B,IAAjBe,EAAUC,KAAad,GAAAA,EAAmBE,WAE1D35B,IAAAA,cAAA,OAAKmP,UAAU,cACbnP,IAAAA,cAACoT,GAAkB,CACjBjE,UAAU,UACV5B,QAASA,EACTzE,cAAgBrI,IACdqI,EAAc,CAAE2F,OAAQhO,EAAEtD,OAAQ8a,KAAMqiB,GAAY,EAEtDpnB,gBAAkBzS,IAChB0W,EAAkB1W,EAAEtD,OAAO,IAG/B6C,IAAAA,cAAC43B,GAAa,CACZzoB,UAAU,SACVuC,KAAK,QACLsN,iBAAkBsb,EAAUE,QAKtC,CAnGCC,GAAAT,KAAAv5B,GAAAigB,GAAAC,GAAAsF,GAAAC,GAAA+R,GAAAC,GAAA7b,GAAAE,GAAA6C,GAAA9C,GAAA2d,GAAAE,GAAAO,GAAAR,IAAAl5B,GAAA84B,GAAA74B,MAAAC,EAAAA,EAAAA,GAAAu5B,GAAA,CAzCApjC,GAAc,+BAAgC,CAC7CsY,WAAY,CAACC,GAAAA,MACb,EAKCtY,GAAS,CAAE8J,WAAW,IAAQ,WAG9B9J,KAAU,kBAGVA,GAAS,CAAE8J,WAAW,IAAQ,cAG9B7J,GAAM,CAAE8J,KAAM,iBAAiB,gBAAAG,IAAAvD,EAAAA,EAAAA,GAAA/F,GAAAsJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAjG,GAAAsJ,EAAAtD,IAAA,CAG/B3G,GAAM,CAAE8J,KAAM,eAAe,cAAAG,IAAAvD,EAAAA,EAAAA,GAAA9F,GAAAqJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAAhG,GAAAqJ,EAAAtD,KAAA,GAAAuD,GAAAgzB,GAAA/yB,KAAAC,EAAAA,EAAAA,GAAAF,KAftBzH,EAAAA,mBAAgBiH,KCzEnB,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,gCAADA,EAAC,sCAADA,EAAC,gDAADA,EAAC,4DAADA,EAAC,oCAADA,EAAC,sCAADA,EAAC,4CAADA,EAAC,sBAADA,EAAC,sDAADA,EAAC,kDAADA,EAAC,sBAADA,EAAC,cAADA,EAAC,sBAADA,CAAC,MAgBb,MAsCahR,GAAK,qCAILqR,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,2CCxCtCD,EAAAA,EAAAA,gBAAeC,GDsCQ,CAAEiR,GAxCN,CACjBuyB,eAAgB,iBAChBC,kBAAmB,oBACnBC,uBAAwB,0CACxBC,6BACE,sDACFC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,qBAAsB,iDACtBC,4BACE,kDACFC,UAAW,8BACXC,0BAA2B,+BAC3BC,iCAAkC,0CAClCC,wBAAyB,6BACzBC,+BAAgC,wCAChCC,UAAW,YACXC,MAAO,KACPC,UAAW,MAsBgBnzB,GAnBV,CACjBoyB,eAAgB,QAChBC,kBAAmB,SACnBC,uBAAwB,wBACxBC,6BAA8B,8BAC9BC,iBAAkB,SAClBC,kBAAmB,SACnBC,qBAAsB,4BACtBC,4BAA6B,4BAC7BC,UAAW,oBACXC,0BAA2B,aAC3BE,wBAAyB,aACzBE,UAAW,KACXC,MAAO,IACPC,UAAW,OC/Bb,MAAM1oB,IAAcpK,EAAAA,EAAAA,WAA2B,WACzCD,IAAcC,EAAAA,EAAAA,WAAyC,WACvDgvB,IAAgBhvB,EAAAA,EAAAA,WACpB,sBAEMvR,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAkkC,GAAA,IAAA7jC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAWvD,MAAA6jC,WAIU5hC,EAAAA,iBAEVC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAtC,GAAA4oB,GAAA,QAAAtmB,EAAAA,EAAAA,GAAA,KAAApC,IAAA2oB,GAAA,MAAAkb,GAAA,QAAAC,GAAA,cAEW1lB,GAAI,OAAAnY,EAAAA,EAAAA,GAAAnG,GAAA,cAAJse,CAAIlY,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,oBAGJ69B,GAAe,OAAA99B,EAAAA,EAAAA,GAAAjG,GAAA,yBAAf+jC,CAAe79B,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,CAExB6B,MAAAA,GACE,OACEC,IAAAA,cAACg8B,GAAyB,CACxB5lB,KAAMzZ,KAAKyZ,KACX2lB,gBAAiBp/B,KAAKo/B,iBAG5B,EAGF,SAASC,GAAyBliC,GAGR,IAHS,KACjCsc,EAAI,gBACJ2lB,GACsBjiC,EACtB,OAAKsc,EASHpW,IAAAA,cAAA,UACGoW,EAAKlU,KAAI,CAAC+5B,EAAUxvB,KAAK,IAAAyvB,EAAAC,EAAA,OACxBn8B,IAAAA,cAAA,MAAImP,UAAU,WAAW1I,IAAKgG,GAC5BzM,IAAAA,cAAA,OAAKmP,UAAU,eACfnP,IAAAA,cAAA,OAAKmP,UAAU,QACbnP,IAAAA,cAAC43B,GAAa,CACZzoB,UAAU,SACV6P,iBAAkBid,EAASG,QAC3B1qB,KAAK,OAEP1R,IAAAA,cAAA,QAAMmP,UAAU,UACb8sB,EAASI,UAAU,IAEM,uBAAzBJ,EAASK,YACRt8B,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,YAAOwI,GAAEL,GAAEwyB,iBACX36B,IAAAA,cAACgT,GAAW,CACV7D,UAAU,eACViK,KAAKC,EAAAA,GAAAA,GAAc0iB,EAAiBE,GACpC10B,OAAO,UAEW,QAFH20B,EAEdD,EAASM,gBAAQ,IAAAL,OAAA,EAAjBA,EAAmBM,oBAEtBx8B,IAAAA,cAAC2I,GAAW,CACVwG,UAAU,qBACVE,IAAI,SACJC,KAAK,mBAGkB,gBAAzB2sB,EAASK,YACX9zB,GAAEL,GAAEyyB,mBACuB,cAAzBqB,EAASK,YACXL,EAASM,SAASE,MAAMnjB,MACtB9Q,GAAEL,GAAE0yB,uBAAwBoB,EAASM,SAASE,OAC5CR,EAASM,SAASE,MAAMvX,YAC1B1c,GAAEL,GAAE2yB,6BAA8BmB,EAASM,SAASE,OAEpDj0B,GAAEL,GAAE4yB,kBAEqB,gBAAzBkB,EAASK,YACX9zB,GAAEL,GAAE6yB,mBACuB,oBAAzBiB,EAASK,YACX,GAAG9zB,GAAEL,GAAE8yB,qBAAsB,CAC3ByB,MAAOT,EAASM,SAASI,oBACtBV,EAASM,SAASK,UACpB16B,KAAKm3B,GAAMA,EAAE/f,QACbjX,KAAKmG,GAAEL,GAAEszB,UACe,gBAAzBQ,EAASK,YACX9zB,GAAEL,GAAEgzB,UAAW,CACbX,KAAMyB,EAASM,SAASE,MAAMvJ,MAAMmJ,YAEX,eAAzBJ,EAASK,YAyB3B,SACEL,GAEA,MAAMY,EAAoB,GACpBC,EAAkB,GAClBC,EAAgB,IAAI/kB,IACxBikB,EAASM,SAASS,OAAOC,MAAM/6B,KAAKs4B,GAASA,EAAK6B,aAEpD,IAAK,MAAM7B,KAAQyB,EAASM,SAASE,MAAMQ,MACpCF,EAAcr7B,IAAI84B,EAAK6B,YAC1BS,EAAMvmC,KAAKikC,EAAK6B,WAGpB,MAAMa,EAAe,IAAIllB,IACvBikB,EAASM,SAASE,MAAMQ,MAAM/6B,KAAKs4B,GAASA,EAAK6B,aAEnD,IAAK,MAAM7B,KAAQyB,EAASM,SAASS,OAAOC,MACrCC,EAAax7B,IAAI84B,EAAK6B,YACzBQ,EAAQtmC,KAAKikC,EAAK6B,WAItB,MAAMc,EAAyB,GAc/B,OAbIN,EAAQl4B,OAAS,GACnBw4B,EAAa5mC,KACXiS,GAAEL,GAAEizB,0BAA2B,CAAEsB,MAAOG,EAAQl4B,SAC9Ck4B,EAAQx6B,KAAKmG,GAAEL,GAAEszB,SAGnBqB,EAAMn4B,OAAS,GACjBw4B,EAAa5mC,KACXiS,GAAEL,GAAEmzB,wBAAyB,CAAEoB,MAAOI,EAAMn4B,SAC1Cm4B,EAAMz6B,KAAKmG,GAAEL,GAAEszB,SAId0B,EAAa96B,KAAKmG,GAAEL,GAAEuzB,WAC/B,CA7DgB0B,CAAwCnB,GACb,gBAAzBA,EAASK,YACX9zB,GAAEL,GAAEqzB,WAGHS,EAAqCK,aAG1Ct8B,IAAAA,cAAA,QACEmP,UAAU,OACVmK,OAAOigB,EAAAA,GAAAA,GAAa0C,EAAS1B,KAAMd,GAAAA,EAAmBC,QAErDH,EAAAA,GAAAA,GAAa0C,EAAS1B,KAAMd,GAAAA,EAAmBE,YAG1B,gBAAzBsC,EAASK,aACRt8B,IAAAA,cAAA,OAAKmP,UAAU,WAA4B,QAAnBgtB,EAAEF,EAASM,gBAAQ,IAAAJ,OAAA,EAAjBA,EAAmBkB,iBAE5C,KA7EPr9B,IAAAA,cAAA,OAAKmP,UAAU,WACbnP,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,OAAOC,KAAK,qBAAqBkK,UAAQ,IAgFlE,CAzFC8jB,GAAA1B,KAAAn7B,GAAAigB,GAAAC,GAAAkb,GAAAC,IAAA96B,GAAA26B,GAAA16B,MAAAC,EAAAA,EAAAA,GAAAo8B,GAAA,CArBAjmC,GAAc,8BAA+B,CAC5CsY,WAAY,CAACC,GAAAA,MACb,EAKCtY,GAAS,CAAE8J,WAAW,IAAQ,WAG9B9J,KAAU,+BANH0C,EAAAA,mBAAgBiH,KCxCnB,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,wCAADA,CAAC,MAIb,MAQahR,GAAK,8BAILqR,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,qFCCtCD,EAAAA,EAAAA,gBAAeC,GDHQ,CAAEiR,GAVN,CACjBm1B,mBAAoB,sBASOh1B,GANV,CACjBg1B,mBAAoB,UCUtB,MAAMC,GAAiC,CACrCnuB,IAAK,OACLC,KAAM,qBACNkK,UAAU,GAGNikB,GAA8B,CAClCpuB,IAAK,KACLhB,OAAQ,MACRiB,KAAM,eAGF3G,IAAcC,EAAAA,EAAAA,WAAyC,WACvDyK,IAAoBzK,EAAAA,EAAAA,WACxB,0BAGMvR,cAAa,GAAEC,SAAQ,GAAEC,MAAKA,KAAKE,EAAAA,EAAAA,oBAAmB,IAAAimC,GAAA,IAAA5lC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAA4lC,GAAA,IAAAzkC,QAAAmQ,GAAA,IAAAtR,QAAAM,GAAA,IAAAN,QAAA6lC,GAAA,IAAA7lC,QAwB9D,MAAA8lC,WAMwB7jC,EAAAA,iBAA2CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAwjC,KAAAvjC,EAAAA,EAAAA,GAAA,KAAAtC,GAAA6R,GAAA,QAAAvP,EAAAA,EAAAA,GAAA,KAAApC,IAAA4R,GAAA,MAAAC,GAAA,SAAAzP,EAAAA,EAAAA,GAAA,KAAAnC,IAAA6R,GAAA,MAAAg0B,GAAA,SAAA1jC,EAAAA,EAAAA,GAAA,KAAAlC,IAAA6lC,GAAA,MAAAC,GAAA,SAAA5jC,EAAAA,EAAAA,GAAA,KAAAjC,IAAA8lC,GAAA,MAAAC,GAAA,SAAA9jC,EAAAA,EAAAA,GAAA,KAAAhC,IAAA+lC,GAAA,MAAAl0B,GAAA,SAmBjE7P,EAAAA,EAAAA,GAAA,KAAAiP,IAAoBa,GAAA,MAAI7G,KACtB3G,EAAAA,EAAAA,GAAAihC,GAAAhhC,KAAKwN,IAAetN,KAAKwG,EAAM,KAC/BjJ,EAAAA,EAAAA,GAAA,KAAA/B,GAAA+lC,GAAA,QAKFhkC,EAAAA,EAAAA,GAAA,KAAAwjC,IAAgBS,GAAA,MAAG,MACjB3hC,EAAAA,EAAAA,GAAAihC,GAAAhhC,KAAK2hC,IAAWzhC,MAAM,GACtB,gBA1BO4I,GAAW,OAAAxH,EAAAA,EAAAA,GAAAnG,GAAA,qBAAX2N,CAAWvH,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,cAGXuM,GAAS,OAAAxM,EAAAA,EAAAA,GAAAjG,GAAA,mBAATyS,CAASvM,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,mBAGTqgC,GAAc,OAAAtgC,EAAAA,EAAAA,GAAAhG,GAAA,wBAAdsmC,CAAcrgC,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,sBAGdsgC,GAAiB,OAAAvgC,EAAAA,EAAAA,GAAA/F,GAAA,2BAAjBsmC,CAAiBtgC,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,gBAGjBugC,GAAW,OAAAxgC,EAAAA,EAAAA,GAAA9F,GAAA,qBAAXsmC,CAAWvgC,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,CAgBpB6B,MAAAA,GACE,OACEC,IAAAA,cAAC0+B,GAAkB,CACjBj5B,YAAa9I,KAAK8I,YAClBgF,UAAW9N,KAAK8N,UAChB8zB,eAAgB5hC,KAAK4hC,eACrBC,kBAAmB7hC,KAAK6hC,kBACxBC,YAAa9hC,KAAK8hC,YAClB96B,UAAU1F,EAAAA,EAAAA,GAAKoL,GAAL1M,MACVuD,aAAajC,EAAAA,EAAAA,GAAK2/B,GAALjhC,OAGnB,EAQF,SAAS+hC,GAAkB5kC,GAQC,IARA,YAC1B2L,EAAW,UACXgF,EAAS,eACT8zB,EAAc,kBACdC,EAAiB,YACjBC,EAAW,SACX96B,EAAQ,YACRzD,GACwBpG,EACxB,MAAMsJ,GAAee,EAAAA,EAAAA,QAAuB,MACtCD,GAAcC,EAAAA,EAAAA,QAA8B,OAC3Cd,EAAOW,IAAYC,EAAAA,EAAAA,UAAS,IAC7BgH,GAAW9G,EAAAA,EAAAA,QAAO,KACjBw6B,EAAMC,IAAW36B,EAAAA,EAAAA,WAAS,IAEjCmC,EAAAA,EAAAA,YAAU,KAC0B,IAAAwF,EAA9BnB,IAAc8zB,IACG,QAAnB3yB,EAAA1H,EAAY3E,eAAO,IAAAqM,GAAnBA,EAAqBrH,QACvB,GACC,CAACkG,EAAW8zB,IAEf,MAAMM,GAAiB/5B,EAAAA,EAAAA,cACpBzB,KACKk7B,GAAmBl7B,IAIvBM,EAASN,GACT4H,EAAS1L,QAAU,GACnByE,EAAS,IAAG,GAEd,CAACu6B,EAAgB56B,IAGbkI,GAAe/G,EAAAA,EAAAA,cAClBrE,IACCo+B,EAAep+B,EAAEqL,cAAczI,MAAM,GAEvC,CAACw7B,IAGG9yB,GAAejH,EAAAA,EAAAA,cAClBrE,IACCwK,EAAS1L,QAAUkB,EAAE8G,OAAOlE,MAC5BW,EAASvD,EAAE8G,OAAOlE,MAAM,GAE1B,IAGIqK,GAAoB5I,EAAAA,EAAAA,cAAY,KACpC+5B,EAAe5zB,EAAS1L,QAAQ,GAC/B,CAACs/B,KAGJz4B,EAAAA,EAAAA,YAAU,KACR,MAAMa,EAAY7D,aAAY,EAAZA,EAAc7D,QAChC,IAAK0H,EACH,OAEF,MAAME,EAAW,IAAIC,GAAAA,GAAgBC,IACnC,IAAK,MAAMC,KAASD,EACdC,EAAMC,SAAWN,IACMK,EAAMG,eAC3BH,EAAMG,eAAe,GACnBH,EAAMG,eAAe,GAAGq3B,UACvBx3B,EAAMG,eACJq3B,UACLx3B,EAAMK,YAAYjC,QACC,IACrBk5B,GAAQ,EAGd,IAGF,OADAz3B,EAASa,QAAQf,GACV,KACLE,EAASc,YAAY,CACtB,GACA,KAEH7B,EAAAA,EAAAA,YAAU,KACH/C,GACHu7B,GAAQ,EACV,GACC,CAACv7B,IAEJ,MAAM07B,GAAuBj6B,EAAAA,EAAAA,cAAarE,IAAwB,IAAAqN,EAChE,IAAK,MAAMmK,KAAQxX,EAAEmO,YAAYowB,eAC/B,GACE/mB,aAAgBgnB,qBAChBhnB,aAAgBinB,kBAEhB,OAGe,QAAnBpxB,EAAA5J,EAAY3E,eAAO,IAAAuO,GAAnBA,EAAqBvJ,OAAO,GAC3B,IAEH,OACEvE,IAAAA,cAAA,OAAKmP,UAAU,YAAYC,QAAS2vB,GAClC/+B,IAAAA,cAAA,OAAKmP,UAAW4J,KAAW,MAAO,CAAE4lB,UAClC3+B,IAAAA,cAAA,OAAKmP,UAAU,QAAQ5O,IAAK6C,GAC1BpD,IAAAA,cAAC4C,GAAkB,CACjBQ,aAAcA,EACd7C,IAAK2D,EACLb,MAAOA,EACPL,QAAS,EACTC,QAAS,EACTC,WAAY,EACZC,YAAa,GACbL,YAAU,EACV2C,YAAaA,EACbjC,WAAW,sBACXG,SAAUkI,EACVnI,SAAUqI,KAGd/L,IAAAA,cAAA,OAAKmP,UAAU,WACXovB,GAAmBC,EASnBx+B,IAAAA,cAAAA,IAAAA,SAAA,KACGy+B,EACCz+B,IAAAA,cAACqT,GAAiB,CAAC/D,KAAMkuB,GAAchzB,UAAQ,IAE/CxK,IAAAA,cAACqT,GAAiB,CAChB/D,KAAMmuB,GACNvkB,QAAS1Q,GAAEL,GAAEo1B,oBACbnuB,QAASlP,KAffF,IAAAA,cAAA,UACEmP,UAAU,WACV3E,SAAU+zB,IAAmBl7B,EAC7B+L,QAAS1B,GAET1N,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,KAAKC,KAAK,gBAmBzC,CAtJC6vB,GAAAtB,KAAAp9B,GAAAkJ,GAAAC,GAAAC,GAAAC,GAAAg0B,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAl0B,GAAAE,GAAAsF,GAAAvF,GAAAk0B,GAAAE,GAAAc,GAAAf,IAAAr9B,GAAA08B,GAAAz8B,MAAAC,EAAAA,EAAAA,GAAAi+B,GAAA,CAjDA9nC,GAAc,uBAAwB,CACrCsY,WAAY,CAACC,GAAAA,GACbzO,cAAe,CACb0O,gBAAgB,MAElB,EAECvY,KAAU,kBAGVA,GAAS,CAAE+J,KAAMC,UAAU,gBAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,qBAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,wBAG3BhK,GAAS,CAAE+J,KAAMC,UAAU,kBAG3B/J,GAAM,CAAE8J,KAAM,mBAAmB,kBAAAG,IAAAvD,EAAAA,EAAAA,GAAA7F,GAAAoJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA/F,GAAAoJ,EAAAtD,IAAA,CAOjC3G,GAAM,CAAE8J,KAAM,cAAc,cAAAG,IAAAvD,EAAAA,EAAAA,GAAA5F,GAAAmJ,GAAA,CAAAA,EAAAtD,KAAAC,EAAAA,EAAAA,GAAA9F,GAAAmJ,EAAAtD,KAAA,GAAAuD,GAAAm8B,GAAAl8B,KAAAC,EAAAA,EAAAA,GAAAF,KAvBPzH,EAAAA,mBAAgBiH,kEC7DxC,MAAQ5J,cAAaA,KAAKI,EAAAA,EAAAA,oBAE1B,IAAA4nC,GAIA,MAAAC,WAGwBtlC,EAAAA,iBACtB+F,MAAAA,GACE,OACEC,IAAAA,cAAA,OAAKmP,UAAU,OAAOowB,IAAI,QAAQzY,IAAK0Y,GAAM53B,MAAO,GAAIlC,OAAQ,IAEpE,EACD+5B,GAAAH,IAAAD,GAAAp+B,KAAAC,EAAAA,EAAAA,GAAAu+B,GAAA,CATApoC,GAAc,uBAAwB,CACrCsY,WAAY,CAACC,GAAAA,MACb,YACsB5V,EAAAA,kBAAgBgH,EAAAC,KCdjC,IAAKkH,GAAC,SAADA,GAAC,OAADA,EAAC,4BAADA,CAAC,MAIb,MAQahR,GAAK,6BAELC,GAAU,CAAEgR,GAVN,CACjB,CAACD,GAAEu3B,cAAe,gBASSn3B,GANV,CACjB,CAACJ,GAAEu3B,cAAe,SAOPl3B,GAAIC,EAAAA,KAAKC,UAAU,KAAMvR,iDCLtCD,EAAAA,EAAAA,gBAAeC,GAAIC,IAEnB,MAAMuoC,GAAY,CAAC,SAAU,QAAS,QAEhCh3B,IAAcC,EAAAA,EAAAA,WAAyC,WACvDoK,IAAcpK,EAAAA,EAAAA,WAA2B,YACvCvR,cAAa,GAAEC,SAAQA,KAAKG,EAAAA,EAAAA,oBAAmB,IAAAmoC,GAAA,IAAA9nC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAYvD,MAAA8nC,WAGuB7lC,EAAAA,iBAA0CC,WAAAA,GAAA,SAAAC,YAAAE,EAAAA,EAAAA,GAAA,KAAAtC,GAAAgoC,GAAA,QAAA1lC,EAAAA,EAAAA,GAAA,KAAApC,IAAA+nC,GAAA,MAAAC,GAAA,SAAA5lC,EAAAA,EAAAA,GAAA,KAAAnC,IAAAgoC,GAAA,MAAA7R,GAAA,QAAAC,GAAA,mBAEtD7M,GAAS,OAAAvjB,EAAAA,EAAAA,GAAAnG,GAAA,mBAAT0pB,CAAStjB,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,YAGTujB,GAAO,OAAAxjB,EAAAA,EAAAA,GAAAjG,GAAA,iBAAPypB,CAAOvjB,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,QAGPkb,GAAG,OAAAnb,EAAAA,EAAAA,GAAAhG,GAAA,aAAHmhB,CAAGlb,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,CAEZ6B,MAAAA,GACE,OACEC,IAAAA,cAACkgC,GAAiB,CAChB1e,UAAW7kB,KAAK6kB,UAChBC,QAAS9kB,KAAK8kB,QACdrI,IAAKzc,KAAKyc,KAGhB,EAGF,SAAS8mB,GAAiBpmC,GAA6C,IAA5C,UAAE0nB,EAAS,QAAEC,EAAO,IAAErI,GAAoBtf,EACnE,OACEkG,IAAAA,cAACgT,GAAW,CACV7D,UAAW,QAAQwwB,GAAU75B,KAAKq6B,MAAMr6B,KAAKs6B,SAAWT,GAAUh7B,WAClEyU,IAAKA,GAELpZ,IAAAA,cAAA,QAAMmP,UAAU,SAASqS,GACzBxhB,IAAAA,cAAA,QAAMmP,UAAU,eAAesS,GAC/BzhB,IAAAA,cAAA,QAAMmP,UAAU,SAChBnP,IAAAA,cAAA,QAAMmP,UAAU,UACdnP,IAAAA,cAAC2I,GAAW,CAAC0G,IAAI,UAAUC,KAAK,WAC/B9G,GAAEL,GAAEu3B,eAIb,CAjBCW,GAAAR,KAAAp/B,GAAAq/B,GAAAC,GAAAC,GAAAC,GAAA7R,GAAAC,IAAArtB,GAAA4+B,GAAA3+B,MAAAC,EAAAA,EAAAA,GAAAm/B,GAAA,CAtBAhpC,GAAc,sBAAuB,CACpCsY,WAAY,CAACC,GAAAA,MACb,EAECtY,KAAU,gBAGVA,KAAU,cAGVA,KAAU,mBAPU0C,EAAAA,mBAAgBiH,KCdvCwmB,eAAeC,OAAO,uBAAuBC,EAAAA,GAAAA,sBAhBtCpU,eACL+sB,EACA9sB,GAWA,aATuBC,GAAAA,KAAK8sB,KAC1B,iEACED,EAAKtiC,uBACEsiC,EAAKE,cACd,CACEhtB,YAIY/F,IAClB,0ECfInX,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,8LAA+L,KAExOH,EAAwBq3B,OAAS,CAChC,QAAW,qBAEZ,+ECPIr3B,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,61CAIiI,KAE1K,QAAeH,EAAwBI,6GCPnCC,EAAgC,IAAIC,IAAI,cACxCN,EAA0B,IAA4B,KACtDO,EAAqC,IAAgCF,GAEzEL,EAAwBC,KAAK,CAACC,EAAOC,GAAI,0MAA0MI,qLAAuN,KAE1c,QAAeP,EAAwBI,6GCNnCC,EAAgC,IAAIC,IAAI,cACxCN,EAA0B,IAA4B,KACtDO,EAAqC,IAAgCF,GAEzEL,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4LAA4LI,++CAAihD,KAEtvD,QAAeP,EAAwBI,gFCPnCJ,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,ovCACuV,KAEhY,QAAeH,EAAwBI,kKCJnCC,EAAgC,IAAIC,IAAI,cACxCN,EAA0B,IAA4B,KACtDO,EAAqC,IAAgCF,GAEzEL,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4LAA4LI,4+CAEk5B,KAEvnC,QAAeP,EAAwBI","sources":["webpack:///./src/stat-with-mini-chart/styles.shadow.css","webpack:///./src/goal-card-list/styles.shadow.css","webpack:///./src/action-buttons/styles.shadow.css","webpack:///./src/activity-timeline/styles.shadow.css","webpack:///./src/tab-list/styles.shadow.css","webpack:///./src/project-knowledges/styles.shadow.css","webpack:///./src/elevo-logo/styles.shadow.css","webpack:///./src/mcp-tools/styles.shadow.css","webpack:///./src/dropdown-select/styles.shadow.css","webpack:///./src/show-cases/styles.shadow.css","webpack:///./src/show-case/styles.shadow.css","webpack:///./src/goal-card-list/CardItem/CardItem.shadow.css","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/icon-button/styles.shadow.css","webpack:///./src/page-container/styles.shadow.css","webpack:///./src/elevo-sidebar/styles.shadow.css","webpack:///./src/cruise-canvas/index.tsx","webpack:///../../../src/utils/getMirroredStyle.ts","webpack:///../../src/getCaretPositionInTextarea.ts","webpack:///../../src/getContentRectInTextarea.ts","webpack:///../../../src/utils/calculateAutoSizeStyle.ts","webpack:///../../src/TextareaAutoResize.tsx","webpack:///./src/chat-box/i18n.ts","webpack:///./src/chat-box/index.tsx","webpack:///./src/home-container/index.tsx","webpack:///./src/stat-with-mini-chart/index.tsx","webpack:///./src/elevo-sidebar/i18n.ts","webpack:///./src/elevo-sidebar/bricks.ts","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/elevo/getElevoProjects.js","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/elevo/listElevoConversations.js","webpack:///./src/elevo-sidebar/ChatHistory.tsx","webpack:///./src/elevo-sidebar/index.tsx","webpack:///./src/icon-button/index.tsx","webpack:///./src/show-cases/i18n.ts","webpack:///./src/show-cases/index.tsx","webpack:///./src/mcp-tools/i18n.ts","webpack:///./src/mcp-tools/index.tsx","webpack:///./src/chat-stream/index.tsx","webpack:///./src/ai-employees/i18n.ts","webpack:///./src/ai-employees/index.tsx","webpack:///./src/ai-agents/i18n.ts","webpack:///./src/ai-agents/index.tsx","webpack:///./src/data-providers/request-store.ts","webpack:///./src/page-container/index.tsx","webpack:///./src/tab-list/index.tsx","webpack:///./src/dropdown-select/i18n.ts","webpack:///./src/dropdown-select/index.tsx","webpack:///./src/preview-container/i18n.ts","webpack:///./src/preview-container/styles.module.css?836e","webpack:///./src/preview-container/index.tsx","webpack:///./src/action-buttons/i18n.ts","webpack:///./src/action-buttons/index.tsx","webpack:///./src/goal-card-list/i18n.ts","webpack:///./src/shared/getContentEditable.ts","webpack:///./src/goal-card-list/CardItem/CardItem.tsx","webpack:///./src/goal-card-list/index.tsx","webpack:///./src/project-conversations/i18n.ts","webpack:///./src/project-conversations/index.tsx","webpack:///./src/project-knowledges/index.tsx","webpack:///./src/activity-timeline/i18n.ts","webpack:///./src/activity-timeline/index.tsx","webpack:///./src/chat-input/i18n.ts","webpack:///./src/chat-input/index.tsx","webpack:///./src/elevo-logo/index.tsx","webpack:///./src/show-case/i18n.ts","webpack:///./src/show-case/index.tsx","webpack:///./src/data-providers/call-tool.ts","webpack:///./src/preview-container/styles.module.css","webpack:///./src/project-conversations/styles.shadow.css","webpack:///./src/home-container/styles.shadow.css","webpack:///./src/ai-agents/styles.shadow.css","webpack:///./src/chat-input/styles.shadow.css","webpack:///./src/ai-employees/styles.shadow.css"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;white-space:nowrap}.container{border-radius:var(--elevo-border-radius)}:host([hidden]){display:none}*{box-sizing:border-box}.label{font-weight:500;overflow:hidden;text-overflow:ellipsis}.stat{font-weight:600}.chart{min-width:0}.chart > *{display:block}:host(:not([size=\"small\"])) .container{background:linear-gradient(164deg,rgba(105,153,253,0) 40%,rgba(105,153,253,0.05) 60%,rgba(105,153,253,0.32) 100%),#fff;padding:22px}:host(:not([size=\"small\"])) .label{font-size:14px;height:22px;margin-bottom:16px}:host(:not([size=\"small\"])) .stat-and-chart{display:flex;align-items:center;justify-content:end;position:relative}:host(:not([size=\"small\"])) .stat{font-size:36px;color:#1d212a;position:absolute;left:0}:host(:not([size=\"small\"])) .chart{width:calc(100% - 160px)}:host([size=\"small\"]) .container{padding:11px 15px;display:flex;align-items:center;justify-content:end;position:relative;background:var(--elevo-component-background);-webkit-backdrop-filter:var(--elevo-component-backdrop-filter);backdrop-filter:var(--elevo-component-backdrop-filter)}:host([size=\"small\"]) .label-and-stat{position:absolute;left:15px}:host([size=\"small\"]) .label{font-size:12px;color:#8c8c8c;line-height:17px;height:17px;margin-bottom:7px}:host([size=\"small\"]) .stat{font-size:20px;color:#262626;line-height:24px}:host([size=\"small\"]) .chart{width:calc(100% - 90px)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.goal-container{display:flex;flex-direction:column;gap:3px}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.button-container{display:flex;gap:6px}.action::part(button){height:28px;font-size:13px;padding:5px 10px}.action.active::part(button){color:var(--elevo-color-brand);background-color:rgba(var(--elevo-color-brand-rgb-channel),0.04);border-color:#c9d7ff}.icon{font-size:16px;margin-right:4px}.remove{padding:1px;font-size:14px;margin-left:10px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;color:#262626}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.activity{position:relative;padding-left:27px}.activity + .activity{margin-top:20px}.main{display:flex;align-items:flex-start}.action{flex:1;min-width:0;display:flex;align-items:center;margin-left:6px;word-break:break-word}.time{color:#8c8c8c;margin-left:12px}.action,\n.time{padding:1px 0}.guide-line{position:absolute;left:8px;top:0;bottom:-20px;width:0;background-color:#d8d8d8}.guide-line::before{content:\"\";position:absolute;top:0;bottom:0;left:3.5px;width:1px;background-color:#d8d8d8}.guide-line::after{content:\"\";position:absolute;top:8px;left:0;width:8px;height:8px;border-radius:8px;background-color:#d8d8d8}.activity:first-child .guide-line::before{top:12px}.activity:last-child .guide-line::before{height:12px;bottom:auto}.comment{position:relative;font-size:13px;color:#595959;background-color:#f3f3f3;border-radius:8px;padding:8px 12px;margin-top:10px}.comment::before{content:\"\";position:absolute;top:-6px;left:36px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #f3f3f3}.conversation{margin:0 7px 0 10px}.conversation::part(link){background:#f9f0ff;border-radius:3px;font-weight:500;font-size:12px;color:#aa64f5;display:flex;align-items:center;height:24px;padding:0 8px}.external-link-icon{color:#8c8c8c}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.tabs{list-style:none;padding:0;margin:0;display:flex;font-size:16px}.tabs .tab + .tab{margin-left:32px}.tabs a{color:rgba(38,38,38,0.65);cursor:pointer}.tabs .active a{color:#262626;font-weight:500}.tabs .active a::after{content:\"\";display:block;width:100%;height:4px;background-color:currentColor;border-radius:2px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.link{display:block}.link::part(link){display:flex;align-items:center;padding:12px 24px;color:#262626;background:rgba(255,255,255,0.6);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.item:not(:last-child){margin-bottom:4px}.link.actions-active::part(link),\n.link::part(link):hover{background:rgba(0,0,0,0.05);-webkit-backdrop-filter:none;backdrop-filter:none}.icon{font-size:20px;margin-right:8px}.title{font-weight:500;font-size:16px}.title,\n.description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment{color:#1a7aff;margin-left:8px}.header{display:flex;align-items:center}.description{color:#595959;padding-left:28px;line-height:20px}.time{color:rgba(0,0,0,0.45);margin:0 16px}.main{flex:1;min-width:0}.operations{display:flex;align-items:center;justify-content:center;width:32px;height:32px}.link.actions-active .avatar,\n.link:hover .avatar,\n.link:hover .time,\n.link:not(:hover):not(.actions-active) .actions{display:none}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}img{vertical-align:middle}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../page-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px;margin-bottom:17px}h2{font-size:16px;line-height:22px}.groups,\n.list{list-style:none;margin:0;padding:0}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.list .item{background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px}.heading{display:flex;align-items:center}.icon{font-size:24px;color:#333;margin-right:8px}.title{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*{box-sizing:border-box}.trigger{display:flex;align-items:center;font-size:14px;cursor:pointer;position:relative;padding:4px 12px;border-radius:15px;color:var(--elevo-color-brand)}.trigger:hover{background-color:rgba(37,64,255,0.06)}.trigger::before{content:\"\";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;background:linear-gradient(145deg,rgba(37,64,255,1),rgba(180,95,248,1));border-radius:15px;-webkit-mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:xor;-webkit-mask:linear-gradient(#fff 0,#fff 0) content-box,linear-gradient(#fff 0,#fff 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor}.trigger .label{margin-right:0}.label{max-width:650px;margin-right:0.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown{max-width:500px;border-radius:4px;background:var(--antd-dropdown-menu-bg);box-shadow:var(--antd-box-shadow-base)}.dropdown-inner{padding:9px 4px}.search-container{padding:3px;border-bottom:1px solid rgba(0,0,0,0.08)}.search::part(affix-wrapper){box-shadow:none;border:none}eo-menu{border:0;padding:0;background:none;border-radius:0}eo-menu-item::part(menu-item){padding:5px 8px;line-height:22px;border-radius:var(--medius-border-radius)}eo-menu-item:not([disabled]):hover::part(menu-item){background-color:var(--left-sidebar-item-hover-bg)}.active::part(menu-item){font-weight:600;background-color:var(--left-sidebar-item-hover-bg)}.empty{display:flex;justify-content:center;align-items:center;color:var(--color-secondary-text)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:flex;flex-direction:column;align-items:center;max-width:1020px;width:100%}:host([hidden]){display:none}*{box-sizing:border-box}.tips{color:rgba(0,0,0,0.45);margin-bottom:27px}.cases{list-style:none;padding:0;margin:0;display:grid;width:100%;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-top:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/purple@2x.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./images/green@2x.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./images/pink@2x.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.link{display:block;background:rgba(255,255,255,0.6);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-size:cover;background-position:center;background-repeat:no-repeat;background-clip:padding-box;overflow:hidden}.purple{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}.green{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___})}.pink{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_2___})}.link::part(link){display:flex;flex-direction:column;gap:0;box-sizing:border-box;height:128px;padding:20px;position:relative}.title{width:100%;margin-bottom:8px;color:#262626;font-weight:500;font-size:14px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.description{width:100%;height:60px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;color:#18212f;line-height:20px}.link::part(link):hover{box-shadow:0px 4px 12px 0px rgba(96,96,138,0.15),0px 2px 4px 0px rgba(96,96,138,0.06)}.button{display:none;position:absolute;bottom:12px;left:20px;right:20px;height:32px;background:rgba(0,0,0,0.04);border-radius:8px;align-items:center;justify-content:center;gap:4px;color:#262626}.button:hover{background:rgba(0,0,0,0.08)}.link:hover .button{display:flex}.link:hover .description{-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.11) 51%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to bottom,rgba(0,0,0,0.65) 0%,rgba(0,0,0,0.11) 51%,rgba(0,0,0,0) 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 60%;mask-size:100% 60%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.goal-item{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;padding:12px 24px;background-color:rgba(255,255,255,0.6);border-radius:8px;-webkit-user-select:none;user-select:none;border:1px solid transparent}.goal-item:hover,.goal-item:has(.title:focus){background-color:rgba(0,0,0,0.05)}.goal-item:has(.title:focus) .end .operation{display:flex}.goal-item:hover:not(.does-not-exist) .end .operation{display:flex}.goal-item:has(.title:focus) .end .info{display:none}.goal-item:hover:not(.does-not-exist) .end .info{display:none}.goal-item.completed .serial-number,.goal-item.completed .title{color:#bfbfbf}.goal-item.active{background:rgba(37,64,255,0.1);border:1px solid #2540ff}.goal-item > *{-webkit-user-select:auto;user-select:auto}.goal-item .start,.goal-item .end{display:flex;align-items:center}.goal-item .start{flex:1;min-width:0;column-gap:16px;min-width:0}.goal-item .end{flex-shrink:0;column-gap:30px}.goal-item .end .operation{display:none;align-items:center;gap:8px}.goal-item .end .operation eo-button::part(button){height:28px}.goal-item .end .operation .new-chat::part(button){padding:5px 10px;font-size:13px}.goal-item .end .operation .append-child::part(button){padding:5px 8px;font-size:14px}.goal-item .end .info{display:inline-flex;align-items:center;column-gap:24px}.goal-item .serial-number{font-weight:400;color:var(--palette-gray-7);font-size:16px;overflow:visible}.goal-item .title{font-weight:500;padding:2px 4px;font-size:16px;color:var(--palette-gray-10);border:1px solid transparent;border-radius:8px;cursor:pointer;min-width:80px}.goal-item .title:hover{background-color:rgba(255,255,255,0.6);border:1px solid var(--palette-gray-5);cursor:text}.goal-item .title:focus{outline:none;background-color:rgba(255,255,255,0.6);border:1px solid var(--elevo-color-brand)}.goal-item .icon{border-radius:8px;padding:6px;position:relative;top:2px}.goal-item .icon:hover{background-color:rgba(0,0,0,0.04)}.goal-item .message{color:var(--palette-gray-7);display:inline-flex;align-items:center;column-gap:6px}.goal-item .message .count{font-weight:500;color:var(--palette-gray-10)}.goal-item:not(.editing) .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/bg.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center bottom;background-size:100% 104px;padding:12px 12px 29px;margin:0 -12px}.container{position:relative;background:#ffffff;box-shadow:0px 2px 4px 0px rgba(38,45,65,0.1);border-radius:16px;border:1px solid #dadfe8}.container:has(textarea:focus){border-color:#b7c3d8}textarea{display:block;width:100%;padding:10px 16px 50px;color:var(--antd-input-color);border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font:inherit;font-size:14px;line-height:22px;height:120px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.actions-bar{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:flex-end;justify-content:space-between}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff;flex-shrink:0}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}.mentions{position:absolute}.mention-overlay{position:absolute;border-radius:4px;pointer-events:none;background:rgba(38,45,65,0.1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}:host,\neo-tooltip{vertical-align:middle}button{width:28px;height:28px;font-size:18px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#333}button:disabled{color:#8c8c8c}button:not(:disabled){cursor:pointer}button:focus{outline:none}button:not(:disabled):hover{background:rgba(0,0,0,0.04)}button:not(:disabled):active{background:rgba(0,0,0,0.08)}:host([variant=\"light\"]) button{color:#595959}:host([variant=\"mini\"]) button{width:24px;height:24px;font-size:16px;border-radius:4px}:host([variant=\"mini-light\"]) button{color:#8c8c8c;width:20px;height:20px;font-size:14px;border-radius:4px}:host([variant=\"bordered\"]) button{background:#ffffff;border-radius:8px;border:1px solid rgba(0,0,0,0.1);color:#595959;width:32px;height:32px;font-size:18px}:host([variant=\"bordered\"]) button:not(:disabled):hover{background:rgba(0,0,0,0.04)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:17px 54px 48px;overflow-y:auto}:host([hidden]){display:none}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}:host([size=\"small\"]) .container{max-width:1000px}.header{margin-bottom:30px;display:flex;justify-content:space-between;align-items:center}nav{font-weight:500;font-size:20px;line-height:28px;display:flex;min-width:0}h1{margin:0;font-size:inherit;line-height:inherit}.breadcrumbs{list-style:none;padding:0;margin:0;color:#bfbfbf}.breadcrumbs eo-link::part(link){color:inherit}.breadcrumbs eo-link::part(link):hover{color:#595959}.breadcrumbs li::after{content:\"/\";margin:0 8px}@media (max-width: 719px){:host{padding-left:24px;padding-right:24px}.header{margin-left:40px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.sidebar{position:relative;z-index:1;width:260px;height:100%;background:rgba(246,247,249,0.5);border:1px solid rgba(255,255,255,0.3);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:23px 11px 0;display:flex;flex-direction:column;transition:transform 0.3s ease-in-out}.logo-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;margin-left:4px}.logo-link::part(link){display:block}.logo{vertical-align:middle}.new-chat::part(link){display:flex;gap:0;align-items:center;color:var(--elevo-color-brand);font-size:14px;text-align:left;cursor:pointer}.sidebar .new-chat::part(link){background:#f0f4ff;border-radius:8px;border:1px solid #c9d7ff;padding:9px 13px;font-weight:500;margin-bottom:16px}.sidebar .new-chat::part(link):hover{background:rgba(201,215,255,0.5)}.new-chat-icon{font-size:16px;margin-right:5px}.footer{border-top:1px solid rgba(0,0,0,0.04);padding:9px 12px;margin:0 -12px}.dropdown{display:block}.account{background:none;border:none;border-radius:8px;padding:6px 10px;display:block;width:100%;text-align:left;cursor:pointer}.account:hover{background:rgba(0,0,0,0.04)}.alternative{position:fixed;top:8px;left:8px;padding:6px 10px 6px 8px;display:flex;align-items:center;opacity:0;z-index:1;transition:opacity 0.2s ease-in-out;background:rgba(255,255,255,0);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.alternative .new-chat::part(link){padding:4px;margin-left:16px;font-size:12px}.alternative .new-chat::part(link):hover{color:#7891ff}.alternative .new-chat::part(link):active{color:#0911b3}.container{width:270px;padding:10px 0 10px 10px;height:100%;transition:width 0.3s ease-in-out,padding 0.3s ease-in-out}.container.collapsed{width:0;padding:10px 0;overflow:visible}.container.collapsed .sidebar{transform:translateX(-100%)}.container.collapsed .alternative{opacity:1}:host([behavior=\"drawer\"]){z-index:1;width:0}:host(:not([behavior=\"drawer\"])) .alternative .new-chat{display:none}.mask{position:fixed;top:0;right:0;bottom:0;left:0}.links{border-bottom:1px solid rgba(0,0,0,0.06);padding-bottom:16px;margin-bottom:16px}.link{display:block}.link + .link{margin-top:4px}.link::part(link){display:flex;gap:0;align-items:center;padding:7px 10px;border-radius:8px;color:#000}.link::part(link):hover{background:rgba(0,0,0,0.04)}.link .icon{font-size:16px;margin-right:10px}.link .title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history{flex:1;min-height:0;overflow-y:auto;margin:0 -12px;padding:0 12px}.history ul{list-style:none;margin:0;padding:0}.history .section + .section{margin-top:14px}.history .section-title{display:flex;align-items:center;justify-content:space-between;height:30px;margin-bottom:6px;padding:0 8px}.history .section-label{display:flex;align-items:center;height:24px;padding:0 8px;margin-left:-8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-size:12px;color:#8c8c8c;border-radius:8px}.history .section-label eo-icon{vertical-align:middle;margin-left:6px;transition:transform 0.2s ease-in-out}.history .section-label:hover{background:rgba(0,0,0,0.04)}.history .collapsed > ul{display:none}.history .collapsed .section-label eo-icon{transform:rotate(-90deg)}.history .error,.history .loading{display:flex;align-items:center;height:36px;padding:0 8px}.history .loading{justify-content:center}.history .error{color:var(--color-error)}.history .group + .group{margin-top:15px}.history .group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.history .item{display:block}.history .item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.history .item.active::part(link){background:rgba(0,0,0,0.06)}.history .item.actions-active::part(link),.history .item::part(link):hover{background:rgba(0,0,0,0.04)}.history .item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history .actions{cursor:auto}.history .item:not(:hover):not(.actions-active) .actions{display:none}.history .working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.history .item.actions-active .working,.history .item:hover .working,.history .item.active .working{display:none}.history .load-more{display:flex;justify-content:center;align-items:center;height:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// istanbul ignore file: experimental\nimport React, { createRef, forwardRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport type { FeedbackDetail } from \"./interfaces.js\";\nimport { CruiseCanvasComponent, type CruiseCanvasRef } from \"./CruiseCanvas.js\";\nimport type {\n ExampleProject,\n RequestStore,\n ShowCaseType,\n} from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface CruiseCanvasProps {\n conversationId?: string;\n initialRequest?: RequestStore | null;\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showHiddenJobs?: boolean;\n showHumanActions?: boolean;\n showFeedback?: boolean;\n showFeedbackAfterFailed?: boolean;\n showUiSwitch?: boolean;\n showFeedbackOnView?: boolean;\n showJsxEditor?: boolean;\n previewUrlTemplate?: string;\n showCases?: ShowCaseType[];\n exampleProjects?: ExampleProject[];\n tryItOutUrl?: string;\n}\n\nexport interface ConversationDetail {\n projectId?: string;\n}\n\nconst ForwardedCruiseCanvasComponent = forwardRef(CruiseCanvasComponent);\n\n/**\n * 构件 `ai-portal.cruise-canvas`\n */\nexport\n@defineElement(\"ai-portal.cruise-canvas\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass CruiseCanvas extends ReactNextElement implements CruiseCanvasProps {\n @property()\n accessor conversationId: string | undefined;\n\n /** 初始请求数据。仅初始设置有效。 */\n @property({ attribute: false, render: false })\n accessor initialRequest: RequestStore | undefined | null;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean, render: false })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number, render: false })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showHiddenJobs: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showHumanActions: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackAfterFailed: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showJsxEditor: boolean | undefined;\n\n @property()\n accessor previewUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor showCases: ShowCaseType[] | undefined;\n\n @property({ attribute: false })\n accessor exampleProjects: ExampleProject[] | undefined;\n\n @property()\n accessor tryItOutUrl: string | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"chat\">;\n\n #onSwitchToChat = () => {\n this.#switch.emit(\"chat\");\n };\n\n @event({ type: \"detail.change\" })\n accessor #detailChange!: EventEmitter<ConversationDetail>;\n\n #onDetailChange = (detail: ConversationDetail) => {\n this.#detailChange.emit(detail);\n };\n\n #ref = createRef<CruiseCanvasRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed?.();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n return (\n <ForwardedCruiseCanvasComponent\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showHiddenJobs={this.showHiddenJobs}\n showHumanActions={this.showHumanActions}\n showFeedback={this.showFeedback}\n showFeedbackAfterFailed={this.showFeedbackAfterFailed}\n showUiSwitch={this.showUiSwitch}\n showFeedbackOnView={this.showFeedbackOnView}\n showJsxEditor={this.showJsxEditor}\n previewUrlTemplate={this.previewUrlTemplate}\n showCases={this.showCases}\n exampleProjects={this.exampleProjects}\n tryItOutUrl={this.tryItOutUrl}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToChat={this.#onSwitchToChat}\n onFeedbackOnView={this.#onFeedbackOnView}\n onDetailChange={this.#onDetailChange}\n ref={this.#ref}\n />\n );\n }\n}\n","const HIDDEN_STYLE = `\n min-height: 0!important;\n max-height: none!important;\n height: 0!important;\n visibility: hidden!important;\n overflow: hidden!important;\n position: absolute!important;\n z-index: -1000!important;\n top: 0!important;\n left: 0!important;\n pointer-events: none!important;\n`;\n\nconst SIZING_STYLE = [\n \"letter-spacing\",\n \"line-height\",\n \"padding-top\",\n \"padding-bottom\",\n \"font-family\",\n \"font-weight\",\n \"font-size\",\n \"font-variant\",\n \"text-rendering\",\n \"text-transform\",\n \"width\",\n \"text-indent\",\n \"padding-left\",\n \"padding-right\",\n \"border-width\",\n \"box-sizing\",\n \"word-break\",\n \"white-space\",\n];\n\n/**\n * 创建一个镜像元素,用于计算光标位置或文本尺寸。\n */\nexport function getMirroredStyle(element: HTMLElement) {\n const uiTextNodeStyle = window.getComputedStyle(element);\n const sizingStyle = SIZING_STYLE.map(\n (name) => `${name}:${uiTextNodeStyle.getPropertyValue(name)}`\n ).join(\";\");\n return `${sizingStyle};${HIDDEN_STYLE}`;\n}\n","import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getCaretPositionInTextarea(\n textarea: HTMLTextAreaElement,\n index: number\n) {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n hiddenElement.textContent = textarea.value.slice(0, index);\n\n const span = document.createElement(\"span\");\n span.textContent = \"\\u200b\"; // 占位符\n hiddenElement.appendChild(span);\n\n const rect = span.getBoundingClientRect();\n span.remove();\n return {\n top: rect.top,\n left: rect.left,\n };\n}\n","import { getMirroredStyle } from \"./utils/getMirroredStyle.js\";\n\nlet hiddenElement: HTMLDivElement | undefined;\n\nexport function getContentRectInTextarea(\n textarea: HTMLTextAreaElement,\n prefix: string,\n measureContent: string\n) {\n if (!hiddenElement) {\n hiddenElement = document.createElement(\"div\");\n hiddenElement.setAttribute(\"tab-index\", \"-1\");\n hiddenElement.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenElement);\n }\n hiddenElement.setAttribute(\"style\", getMirroredStyle(textarea));\n\n hiddenElement.textContent = prefix;\n\n const span = document.createElement(\"span\");\n span.textContent = measureContent;\n hiddenElement.appendChild(span);\n\n const rect = span.getBoundingClientRect();\n span.remove();\n return rect;\n}\n","// istanbul ignore file\nimport type React from \"react\";\nimport { getMirroredStyle } from \"./getMirroredStyle.js\";\n\nlet hiddenTextarea: HTMLTextAreaElement | undefined;\n\nexport interface AutoSizeOptions {\n minRows?: number | null;\n maxRows?: number | null;\n borderSize?: number;\n paddingSize?: number;\n}\n\n/**\n * 计算 textarea 高度\n * https://github.com/react-component/textarea/blob/1c0026fbe30e5f7dff1fca695b2cf262246381ca/src/calculateNodeHeight.tsx\n */\nexport default function calculateAutoSizeStyle(\n uiTextNode: HTMLTextAreaElement,\n options?: AutoSizeOptions\n): React.CSSProperties {\n const {\n minRows = null,\n maxRows = null,\n borderSize = 2,\n paddingSize = 8,\n } = options ?? {};\n\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement(\"textarea\");\n hiddenTextarea.setAttribute(\"tab-index\", \"-1\");\n hiddenTextarea.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenTextarea);\n }\n\n // equal style\n hiddenTextarea.setAttribute(\"style\", getMirroredStyle(uiTextNode));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || \"\";\n\n let minHeight: number | undefined;\n let maxHeight: number | undefined;\n let overflowY: React.CSSProperties[\"overflowY\"];\n\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n if (minRows !== null || maxRows !== null) {\n const singleRowHeight =\n process.env.NODE_ENV === \"test\"\n ? 22\n : parseFloat(\n window\n .getComputedStyle(hiddenTextarea)\n .getPropertyValue(\"line-height\")\n );\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n if (height <= maxHeight) {\n overflowY = \"hidden\";\n }\n height = Math.min(maxHeight, height);\n }\n }\n\n const style: React.CSSProperties = {\n height,\n overflowY,\n resize: \"none\",\n };\n\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n\n return style;\n}\n","import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport calculateAutoSizeStyle from \"./utils/calculateAutoSizeStyle.js\";\n\n// istanbul ignore next\nconst modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n\nexport interface TextareaAutoResizeProps\n extends React.DetailedHTMLProps<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n > {\n /** @default true */\n autoResize?: boolean;\n minRows?: number | null;\n maxRows?: number | null;\n /** @default 2 */\n borderSize?: number;\n /** @default 8 */\n paddingSize?: number;\n containerRef?: React.RefObject<HTMLElement>;\n submitWhen?: \"enter-without-shift\" | \"enter-with-mod\";\n desiredSelectionRef?: React.MutableRefObject<{\n start: number;\n end: number;\n } | null>;\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n /**\n * The handler can return false to prevent default behavior (submit)\n */\n onKeyDown?: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void | false;\n}\n\nexport interface TextareaAutoResizeRef {\n focus(): void;\n element: HTMLTextAreaElement | null;\n}\n\nexport const TextareaAutoResize = React.forwardRef<\n TextareaAutoResizeRef,\n TextareaAutoResizeProps\n>(LegacyTextareaAutoResize);\n\nfunction LegacyTextareaAutoResize(\n {\n autoResize: _autoResize,\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n containerRef,\n value: propValue,\n style,\n submitWhen,\n desiredSelectionRef,\n onChange,\n onSubmit,\n onKeyDown,\n onCompositionStart,\n onCompositionEnd,\n ...props\n }: TextareaAutoResizeProps,\n ref: React.ForwardedRef<TextareaAutoResizeRef>\n): React.JSX.Element {\n const autoResize = _autoResize ?? true;\n const [value, setValue] = useState(propValue ?? \"\");\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const [autoStyle, setAutoStyle] = useState<React.CSSProperties | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => {\n const textarea = textareaRef.current;\n // istanbul ignore else: defensive check\n if (textarea) {\n const valueLength = textarea.value?.length;\n textarea.focus();\n valueLength && textarea.setSelectionRange(valueLength, valueLength);\n }\n },\n element: textareaRef.current,\n }),\n []\n );\n\n const doAutoResize = useCallback(() => {\n const textarea = textareaRef.current;\n if (textarea && autoResize) {\n const style = calculateAutoSizeStyle(textarea, {\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n });\n // istanbul ignore next\n if (process.env.NODE_ENV === \"test\") {\n setAutoStyle(style);\n } else {\n flushSync(() => {\n setAutoStyle(style);\n });\n }\n }\n }, [autoResize, maxRows, minRows, borderSize, paddingSize]);\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLTextAreaElement>\n ): void => {\n setValue(e.target.value);\n onChange?.(e);\n };\n\n useEffect(() => {\n setValue(propValue ?? \"\");\n }, [propValue]);\n\n useEffect(() => {\n doAutoResize();\n }, [doAutoResize, value]);\n\n const compositionRef = useRef(false);\n\n const handleCompositionStart = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = true;\n onCompositionStart?.(e);\n },\n [onCompositionStart]\n );\n\n const handleCompositionEnd = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = false;\n onCompositionEnd?.(e);\n },\n [onCompositionEnd]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n\n if (onKeyDown?.(e) === false) {\n return;\n }\n\n if (\n e.key === \"Enter\" &&\n (submitWhen === \"enter-without-shift\"\n ? !e.shiftKey\n : submitWhen === \"enter-with-mod\" && e[modKey])\n ) {\n e.preventDefault();\n e.stopPropagation();\n onSubmit?.(e);\n }\n },\n [onKeyDown, onSubmit, submitWhen]\n );\n\n useLayoutEffect(() => {\n const desiredSelection = desiredSelectionRef?.current;\n const textarea = textareaRef.current;\n if (desiredSelection && textarea) {\n const { start, end } = desiredSelection;\n desiredSelectionRef.current = null;\n textarea.setSelectionRange(start, end);\n }\n }, [desiredSelectionRef, value]);\n\n // istanbul ignore next\n useEffect(() => {\n const container = containerRef?.current;\n if (!container || !autoResize) {\n return;\n }\n let previousInlineSize: number | undefined;\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n // istanbul ignore next: compatibility\n const currentInlineSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].inlineSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .inlineSize\n : entry.contentRect.width;\n if (\n currentInlineSize !== undefined &&\n currentInlineSize !== previousInlineSize\n ) {\n const isInitial = !previousInlineSize;\n previousInlineSize = currentInlineSize;\n if (!isInitial) {\n requestAnimationFrame(doAutoResize);\n }\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, [autoResize, containerRef, doAutoResize]);\n\n return (\n <textarea\n {...props}\n ref={textareaRef}\n value={value}\n style={{\n ...style,\n ...autoStyle,\n }}\n onChange={handleInputChange}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n onKeyDown={handleKeyDown}\n />\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n useImperativeHandle,\n createRef,\n useMemo,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n getCaretPositionInTextarea,\n getContentRectInTextarea,\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n ActionsEvents,\n ActionsEventsMapping,\n ActionsProps,\n EoActions,\n SimpleAction,\n} from \"@next-bricks/basic/actions\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedActions = wrapBrick<\n EoActions,\n ActionsProps,\n ActionsEvents,\n ActionsEventsMapping\n>(\"eo-actions\", {\n onActionClick: \"action.click\",\n onItemDragEnd: \"item.drag.end\",\n onItemDragStart: \"item.drag.start\",\n});\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport const ChatBoxComponent = forwardRef(LegacyChatBoxComponent);\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n aiEmployees?: AIEmployee[];\n}\n\nexport interface AIEmployee {\n employeeId: string;\n name: string;\n}\n\nexport interface ChatBoxRef {\n setValue: (value: string) => void;\n getValue: () => string;\n focusOnInput: () => void;\n}\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n shadowOptions: {\n delegatesFocus: true,\n },\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n ref = createRef<ChatBoxRef>();\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ attribute: false })\n accessor aiEmployees: AIEmployee[] | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"ai-employee.mention\" })\n accessor #employeeMention!: EventEmitter<AIEmployee | null>;\n\n #handleEmployeeMention = (employee: AIEmployee | null) => {\n this.#employeeMention.emit(employee);\n };\n\n @method()\n setValue(value: string) {\n this.ref.current?.setValue(value);\n }\n\n @method()\n getValue() {\n return this.ref.current?.getValue();\n }\n\n @method()\n focusOnInput() {\n return this.ref.current?.focusOnInput();\n }\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n aiEmployees={this.aiEmployees}\n onSubmit={this.#handleMessageSubmit}\n onEmployeeMention={this.#handleEmployeeMention}\n ref={this.ref}\n />\n );\n }\n}\n\ninterface ChatBoxComponentProps extends ChatBoxProps {\n onSubmit: (value: string) => void;\n onEmployeeMention: (employee: AIEmployee | null) => void;\n ref?: React.Ref<ChatBoxRef>;\n}\n\ninterface MentionPopover {\n position: {\n left: number;\n top: number;\n };\n range: {\n start: number;\n end: number;\n };\n actions: SimpleAction[];\n}\n\nfunction LegacyChatBoxComponent(\n {\n disabled,\n placeholder,\n autoFocus,\n aiEmployees,\n onSubmit,\n onEmployeeMention,\n }: ChatBoxComponentProps,\n ref: React.Ref<ChatBoxRef>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [mentionPopover, setMentionPopover] = useState<MentionPopover | null>(\n null\n );\n const [mentionedText, setMentionedText] = useState(\"\");\n const [activeActionIndex, setActiveActionIndex] = useState(0);\n const selectionRef = useRef<{ start: number; end: number } | null>(null);\n\n useEffect(() => {\n const store = window.__elevo_try_it_out;\n if (store) {\n delete window.__elevo_try_it_out;\n }\n if (typeof store?.content === \"string\") {\n valueRef.current = store.content;\n setValue(store.content);\n }\n }, []);\n\n useImperativeHandle(ref, () => ({\n setValue: (value: string) => {\n valueRef.current = value;\n setValue(value);\n },\n getValue: () => {\n return valueRef.current;\n },\n focusOnInput: () => {\n textareaRef.current?.focus();\n },\n }));\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n onSubmit(e.currentTarget.value);\n }\n },\n [onSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { value, selectionStart, selectionEnd } = e.target;\n valueRef.current = value;\n setValue(value);\n\n if (\n !mentionedText &&\n selectionStart !== null &&\n selectionStart === selectionEnd &&\n aiEmployees?.length\n ) {\n const previousContent = value.slice(0, selectionStart);\n const mentionIndex = previousContent.lastIndexOf(\"@\");\n if (mentionIndex >= 0) {\n const mentionText = previousContent\n .slice(mentionIndex + 1)\n .toLowerCase();\n const position = getCaretPositionInTextarea(\n e.currentTarget,\n selectionStart\n );\n const matchedEmployees = aiEmployees\n .filter(\n (employee) =>\n employee.employeeId.toLowerCase().includes(mentionText) ||\n employee.name.toLowerCase().includes(mentionText)\n )\n .slice(0, 10);\n if (matchedEmployees.length > 0) {\n setMentionPopover({\n position: {\n left: position.left + 10,\n top: position.top + 22,\n },\n range: { start: mentionIndex, end: selectionStart },\n actions: matchedEmployees.map((employee) => ({\n key: employee.employeeId,\n text: employee.name,\n data: employee,\n })),\n });\n setActiveActionIndex(0);\n return;\n }\n }\n }\n setMentionPopover(null);\n },\n [aiEmployees, mentionedText]\n );\n\n useEffect(() => {\n if (mentionedText && !value.includes(mentionedText)) {\n setMentionedText(\"\");\n onEmployeeMention(null);\n }\n }, [mentionedText, onEmployeeMention, value]);\n\n const handleSubmitClick = useCallback(() => {\n onSubmit(valueRef.current);\n }, [onSubmit]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const mentionPrefix = useMemo(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n return \"\";\n }\n const index = value.indexOf(mentionedText);\n if (index < 0) {\n return \"\";\n }\n return value.slice(0, index);\n }, [mentionedText, value]);\n\n const mentionOverlay = useMemo(() => {\n const element = textareaRef.current?.element;\n if (!mentionedText || !element) {\n return null;\n }\n const rect = getContentRectInTextarea(\n element,\n mentionPrefix,\n // Ignore the last space\n mentionedText.slice(0, -1)\n );\n return {\n left: rect.left - 1,\n top: rect.top - 1,\n width: rect.width + 4,\n height: rect.height + 4,\n };\n }, [mentionedText, mentionPrefix]);\n\n const handleMention = useCallback(\n (action: SimpleAction) => {\n const mention = `@${action.text} `;\n const prefix = `${valueRef.current.slice(0, mentionPopover!.range.start)}${mention}`;\n const newValue = `${prefix}${valueRef.current.slice(mentionPopover!.range.end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start: prefix.length, end: prefix.length };\n setValue(newValue);\n setMentionedText(mention);\n setMentionPopover(null);\n onEmployeeMention((action as { data?: AIEmployee }).data!);\n },\n [mentionPopover, onEmployeeMention]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n switch (e.key) {\n case \"Escape\":\n if (!mentionPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setMentionPopover(null);\n return false;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n if (!mentionPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n setActiveActionIndex((prev) => {\n const nextIndex = prev + (e.key === \"ArrowUp\" ? -1 : 1);\n const total = mentionPopover.actions.length;\n const next = (total + nextIndex) % total;\n return next;\n });\n return false;\n }\n case \"Enter\":\n if (!mentionPopover) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n handleMention(mentionPopover.actions[activeActionIndex]);\n return false;\n case \"Delete\":\n case \"Backspace\": {\n if (mentionedText?.length) {\n let { selectionStart, selectionEnd } = e.currentTarget;\n if (selectionStart === selectionEnd) {\n if (e.key === \"Backspace\") {\n selectionStart -= 1;\n } else {\n selectionEnd += 1;\n }\n }\n const currentStart = mentionPrefix.length;\n const currentEnd = currentStart + mentionedText.length;\n if (selectionStart < currentEnd && selectionEnd > currentStart) {\n const start = Math.min(selectionStart, currentStart);\n const end = Math.max(selectionEnd, currentEnd);\n const newValue = `${valueRef.current.slice(0, start)}${valueRef.current.slice(end)}`;\n valueRef.current = newValue;\n selectionRef.current = { start, end: start };\n setValue(newValue);\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n break;\n }\n }\n },\n [\n activeActionIndex,\n handleMention,\n mentionPopover,\n mentionPrefix.length,\n mentionedText?.length,\n ]\n );\n\n return (\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={58 / 22}\n paddingSize={60}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n desiredSelectionRef={selectionRef}\n onSubmit={handleSubmit}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n />\n <div className=\"actions-bar\">\n <div>\n <slot name=\"actions\"></slot>\n </div>\n <button\n className=\"btn-send\"\n disabled={!value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n {mentionPopover && (\n <WrappedActions\n className=\"mentions\"\n actions={mentionPopover.actions}\n style={mentionPopover.position}\n onActionClick={(e) => handleMention(e.detail)}\n checkedKeys={[mentionPopover.actions[activeActionIndex].key!]}\n />\n )}\n {mentionOverlay && (\n <div className=\"mention-overlay\" style={mentionOverlay} />\n )}\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.home-container`\n */\nexport\n@defineElement(\"ai-portal.home-container\", {\n styleTexts: [styleText],\n})\nclass HomeContainer extends ReactNextElement {\n render() {\n return <HomeContainerComponent />;\n }\n}\n\nexport function HomeContainerComponent() {\n return <slot />;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n MiniLineChart,\n MiniLineChartProps,\n} from \"@next-bricks/mini-chart/mini-line-chart\";\n\nconst WrappedMiniLineChart = wrapBrick<MiniLineChart, MiniLineChartProps>(\n \"eo-mini-line-chart\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface StatWithMiniChartProps\n extends Pick<\n MiniLineChartProps,\n \"data\" | \"xField\" | \"yField\" | \"lineColor\" | \"showArea\" | \"min\" | \"max\"\n > {\n label?: string;\n value?: string;\n size?: \"medium\" | \"small\";\n}\n\n/**\n * 构件 `ai-portal.stat-with-mini-chart`\n */\nexport\n@defineElement(\"ai-portal.stat-with-mini-chart\", {\n styleTexts: [styleText],\n})\nclass StatWithMiniChart\n extends ReactNextElement\n implements StatWithMiniChartProps\n{\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"medium\"\n */\n @property()\n accessor size: \"medium\" | \"small\" | undefined;\n\n /**\n * @default \"var(--color-brand)\"\n */\n @property()\n accessor lineColor: string | undefined;\n\n @property({ type: Boolean })\n accessor showArea: boolean | undefined;\n\n /**\n * Specify the minimum value of the y-axis.\n * If not specified, the minimum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor min: number | undefined;\n\n /**\n * Specify the maximum value of the y-axis.\n * If not specified, the maximum value will be calculated from the data.\n */\n @property({ type: Number })\n accessor max: number | undefined;\n\n /**\n * @default \"0\"\n */\n @property()\n accessor xField: string | undefined;\n\n /**\n * @default \"1\"\n */\n @property()\n accessor yField: string | undefined;\n\n @property({ attribute: false })\n accessor data: Record<string, number>[] | undefined;\n\n render() {\n return (\n <StatWithMiniChartComponent\n label={this.label}\n value={this.value}\n size={this.size}\n lineColor={this.lineColor}\n showArea={this.showArea}\n min={this.min}\n max={this.max}\n xField={this.xField}\n yField={this.yField}\n data={this.data}\n />\n );\n }\n}\n\nfunction StatWithMiniChartComponent({\n label,\n value,\n size,\n ...chartProps\n}: StatWithMiniChartProps) {\n if (size === \"small\") {\n return (\n <div className=\"container\">\n <div className=\"label-and-stat\">\n <div className=\"label\">{label}</div>\n <div className=\"stat\">{value}</div>\n </div>\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={1.5}\n width=\"auto\"\n height=\"55\"\n />\n </div>\n </div>\n );\n }\n return (\n <div className=\"container\">\n <div className=\"label\">{label}</div>\n <div className=\"stat-and-chart\">\n <div className=\"chart\">\n <WrappedMiniLineChart\n {...chartProps}\n lineWidth={2}\n width=\"auto\"\n height=\"92\"\n />\n </div>\n <div className=\"stat\">{value}</div>\n </div>\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n NEW_CHAT = \"NEW_CHAT\",\n LOGOUT = \"LOGOUT\",\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n PREVIOUS_7_DAYS = \"PREVIOUS_7_DAYS\",\n PREVIOUS_30_DAYS = \"PREVIOUS_30_DAYS\",\n SWITCH_LANGUAGE = \"SWITCH_LANGUAGE\",\n PROJECTS = \"PROJECTS\",\n HISTORY = \"HISTORY\",\n CREATE_PROJECT = \"CREATE_PROJECT\",\n MOVE_TO_PROJECT = \"MOVE_TO_PROJECT\",\n UNTITLED = \"UNTITLED\",\n UNNAMED = \"UNNAMED\",\n}\n\nconst en: Locale = {\n [K.NEW_CHAT]: \"New chat\",\n [K.LOGOUT]: \"Logout\",\n [K.TODAY]: \"Today\",\n [K.YESTERDAY]: \"Yesterday\",\n [K.PREVIOUS_7_DAYS]: \"Previous 7 days\",\n [K.PREVIOUS_30_DAYS]: \"Previous 30 days\",\n [K.SWITCH_LANGUAGE]: \"中文\",\n [K.PROJECTS]: \"Projects\",\n [K.HISTORY]: \"Chats\",\n [K.CREATE_PROJECT]: \"Create project\",\n [K.MOVE_TO_PROJECT]: \"Move to project\",\n [K.UNTITLED]: \"Untitled\",\n [K.UNNAMED]: \"Unnamed\",\n};\n\nconst zh: Locale = {\n [K.NEW_CHAT]: \"新对话\",\n [K.LOGOUT]: \"登出\",\n [K.TODAY]: \"今天\",\n [K.YESTERDAY]: \"昨天\",\n [K.PREVIOUS_7_DAYS]: \"过去7天\",\n [K.PREVIOUS_30_DAYS]: \"过去30天\",\n [K.SWITCH_LANGUAGE]: \"English\",\n [K.PROJECTS]: \"项目\",\n [K.HISTORY]: \"对话\",\n [K.CREATE_PROJECT]: \"创建项目\",\n [K.MOVE_TO_PROJECT]: \"移动到项目\",\n [K.UNTITLED]: \"无标题\",\n [K.UNNAMED]: \"未命名\",\n};\n\nexport const NS = \"bricks/ai-portal/elevo-sidebar\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping,\n} from \"@next-bricks/basic/dropdown-actions\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type {\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n} from \"@next-bricks/basic/mini-actions\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nexport const WrappedDropdownActions = wrapBrick<\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping\n>(\"eo-dropdown-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nexport const WrappedEasyopsAvatar = wrapBrick<\n EoEasyopsAvatar,\n EoEasyopsAvatarProps\n>(\"eo-easyops-avatar\");\nexport const WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nexport const WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n","import { http } from \"@next-core/http\";\n/**\n * @description 获取elevo项目列表\n * @endpoint list /api/v1/elevo/projects\n */\nexport const ElevoApi_getElevoProjects = async (params, options) => /**! @contract easyops.api.llm.elevo.GetElevoProjects@1.0.0 */(await http.get(\"api/gateway/logic.llm.aiops_service/api/v1/elevo/projects\", {\n ...options,\n params\n})).data;\n//# sourceMappingURL=getElevoProjects.js.map","import { http } from \"@next-core/http\";\n/**\n * @description 获取elevo会话列表\n * @endpoint GET /api/v1/elevo/conversations\n */\nexport const ElevoApi_listElevoConversations = async (params, options) => /**! @contract easyops.api.llm.elevo.ListElevoConversations@1.0.0 */(await http.get(\"api/gateway/logic.llm.aiops_service/api/v1/elevo/conversations\", {\n ...options,\n params\n})).data;\n//# sourceMappingURL=listElevoConversations.js.map","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport {\n ElevoApi_listElevoConversations,\n ElevoApi_getElevoProjects,\n type ElevoApi_ListElevoConversationsRequestParams,\n} from \"@next-api-sdk/llm-sdk\";\nimport type {\n ActionType,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { isEqual } from \"lodash\";\nimport { K, t } from \"./i18n.js\";\nimport {\n WrappedIcon,\n WrappedLink,\n WrappedMiniActions,\n WrappedIconButton,\n} from \"./bricks.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type { ConversationState } from \"../shared/interfaces.js\";\n\nconst ADD_ICON: GeneralIconProps = {\n lib: \"fa\",\n icon: \"plus\",\n};\n\nexport interface HistoryItem {\n conversationId: string;\n title: string;\n startTime: number;\n state?: ConversationState;\n}\n\nexport interface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n project?: Project;\n}\n\nexport interface ProjectActionClickDetail {\n action: SimpleActionType;\n project: Project;\n}\n\nexport interface Project {\n /** 实例ID */\n instanceId: string;\n /** 项目名称 */\n name: string;\n /** 项目描述 */\n description: string;\n /** 状态 */\n state: \"active\" | \"inactive\";\n /** 默认数字人ID */\n defaultAiEmployeeId: string;\n /** 创建者 */\n creator: string;\n /** 创建时间 */\n ctime: string;\n /** 修改时间 */\n mtime: string;\n /** 修改者 */\n modifier: string;\n}\n\nexport interface ChatHistoryProps {\n historyActiveId?: string;\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n projectActiveId?: string;\n projectUrlTemplate?: string;\n projectActions?: ActionType[];\n canAddProject?: boolean;\n onActionClick: (detail: ActionClickDetail) => void;\n onHistoryClick: () => void;\n onProjectActionClick: (detail: ProjectActionClickDetail) => void;\n onAddProject: () => void;\n}\n\nexport interface ChatHistoryRef {\n pull: () => void;\n removeProject?: (projectId: string) => void;\n addProject?: (project: Project) => void;\n moveConversation?: (conversationId: string) => void;\n}\n\nexport const ChatHistory = forwardRef(LowLevelChatHistory);\n\nexport function LowLevelChatHistory(\n {\n historyActiveId,\n historyActions,\n historyUrlTemplate,\n projectActiveId,\n projectUrlTemplate,\n projectActions,\n canAddProject,\n onActionClick,\n onHistoryClick,\n onProjectActionClick,\n onAddProject,\n }: ChatHistoryProps,\n ref: React.Ref<ChatHistoryRef>\n) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [projects, setProjects] = useState<Project[] | null>(null);\n const [projectsCollapsed, setProjectsCollapsed] = useState(false);\n const [projectsError, setProjectsError] = useState(false);\n const [historyList, setHistoryList] = useState<HistoryItem[] | null>(null);\n const [historyCollapsed, setHistoryCollapsed] = useState(false);\n const [nextToken, setNextToken] = useState<string | undefined>();\n const [loadNextToken, setLoadNextToken] = useState<string | undefined>();\n const [historyError, setHistoryError] = useState(false);\n const initialRef = useRef(true);\n const [movedConversations, setMovedConversations] = useState<string[]>([]);\n\n const mergedHistoryActions = useMemo(\n () =>\n [\n ...(historyActions ?? []),\n {\n isDropdown: true,\n text: t(K.MOVE_TO_PROJECT),\n disabled: !projects?.length,\n items: projects?.map((project) => ({\n event: \"move\",\n key: project.instanceId,\n text: project.name,\n project,\n })),\n },\n ] as ActionType[],\n [historyActions, projects]\n );\n\n useEffect(() => {\n (async () => {\n try {\n const projects = await ElevoApi_getElevoProjects({\n page: 1,\n page_size: 3000,\n });\n setProjects(projects.list as Project[]);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error loading projects:\", error);\n setProjectsError(true);\n setProjects([]);\n }\n })();\n }, []);\n\n useEffect(() => {\n Promise.all([\n ElevoApi_listElevoConversations(\n {\n token: loadNextToken,\n limit: 30,\n onlyOwner: true,\n onlyUnrelatedProject: true,\n } as ElevoApi_ListElevoConversationsRequestParams,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n ),\n ...(initialRef.current\n ? []\n : [\n new Promise((resolve) => setTimeout(resolve, 500)), // Force a minimum delay\n ]),\n ])\n .then(([data]) => {\n initialRef.current = false;\n setHistoryList((prev) => [\n ...(prev ?? []),\n ...(data.conversations as HistoryItem[]),\n ]);\n setNextToken(data.nextToken);\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Error loading chat history:\", error);\n setHistoryList([]);\n setHistoryError(true);\n });\n }, [loadNextToken]);\n\n const [actionsVisible, setActionsVisible] = useState<string | null>(null);\n\n const nextRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const next = nextRef.current;\n const root = rootRef.current;\n if (!next || !nextToken || !root || historyCollapsed) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setLoadNextToken(nextToken);\n }\n }\n },\n { root }\n );\n observer.observe(next);\n return () => {\n observer.disconnect();\n };\n }, [nextToken, historyCollapsed]);\n\n const pullIdRef = useRef(0);\n\n const pull = useCallback(async () => {\n try {\n const pullId = ++pullIdRef.current;\n const tempList = await ElevoApi_listElevoConversations(\n {\n limit: 30,\n onlyOwner: true,\n onlyUnrelatedProject: true,\n } as ElevoApi_ListElevoConversationsRequestParams,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n if (pullId !== pullIdRef.current) {\n // Ignore this pull if a newer one has been triggered\n return;\n }\n setHistoryList((prev) => {\n const prevList = prev ?? [];\n const newList = tempList.conversations as HistoryItem[];\n const newIds = new Set(newList.map((item) => item.conversationId));\n const newItemsMap = new Map(\n newList.map((item) => [item.conversationId, item])\n );\n\n let foundIntersection = false;\n let foundChanged = false;\n let isFirst = true;\n for (const item of prevList) {\n const newItem = newItemsMap.get(item.conversationId);\n if (newItem) {\n foundIntersection = true;\n foundChanged =\n (isFirst && newItem !== newList[0]) || !isEqual(newItem, item);\n if (foundChanged) {\n break;\n }\n } else {\n break;\n }\n isFirst = false;\n }\n\n if (!foundIntersection) {\n setNextToken(tempList.nextToken);\n return newList;\n }\n\n if (foundChanged) {\n return [\n ...newList,\n ...prevList.filter((item) => !newIds.has(item.conversationId)),\n ];\n }\n\n return prev;\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error pulling chat history:\", error);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n pull,\n removeProject: (projectId: string) => {\n setProjects((prev) =>\n prev ? prev.filter((p) => p.instanceId !== projectId) : prev\n );\n },\n addProject: (project: Project) => {\n setProjects((prev) => (prev ? [...prev, project] : [project]));\n },\n moveConversation: (conversationId: string) => {\n setMovedConversations((prev) => [...prev, conversationId]);\n },\n }),\n [pull]\n );\n\n const filteredHistoryList = useMemo(() => {\n if (!historyList || !historyList.length) {\n return historyList;\n }\n return historyList.filter(\n (item) => !movedConversations.includes(item.conversationId)\n );\n }, [historyList, movedConversations]);\n\n return (\n <div className=\"history\" ref={rootRef}>\n <div className={classNames(\"section\", { collapsed: projectsCollapsed })}>\n <div className=\"section-title\">\n <div\n className=\"section-label\"\n onClick={() => setProjectsCollapsed((prev) => !prev)}\n >\n {t(K.PROJECTS)}\n <WrappedIcon lib=\"fa\" icon=\"angle-down\" />\n </div>\n {canAddProject && (\n <WrappedIconButton\n icon={ADD_ICON}\n variant=\"mini-light\"\n tooltip={t(K.CREATE_PROJECT)}\n onClick={onAddProject}\n />\n )}\n </div>\n <ul className=\"items\">\n {projectsError ? (\n <li className=\"error\">Failed to load project</li>\n ) : projects ? (\n projects.map((project) => (\n <li key={project.instanceId}>\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\": project.instanceId === actionsVisible,\n active: project.instanceId === projectActiveId,\n })}\n onClick={onHistoryClick}\n {...(projectUrlTemplate\n ? { url: parseTemplate(projectUrlTemplate, project) }\n : null)}\n >\n <div className=\"item-title\" title={project.name}>\n {project.name || t(K.UNNAMED)}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={projectActions}\n onActionClick={(e) => {\n onProjectActionClick({ action: e.detail, project });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? project.instanceId : null);\n }}\n />\n </WrappedLink>\n </li>\n ))\n ) : (\n <li className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </li>\n )}\n </ul>\n </div>\n <div className={classNames(\"section\", { collapsed: historyCollapsed })}>\n <div className=\"section-title\">\n <div\n className=\"section-label\"\n onClick={() => setHistoryCollapsed((prev) => !prev)}\n >\n {t(K.HISTORY)}\n <WrappedIcon lib=\"fa\" icon=\"angle-down\" />\n </div>\n </div>\n <ul className=\"items\">\n {filteredHistoryList ? (\n filteredHistoryList.map((item) => (\n <li key={item.conversationId}>\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\": item.conversationId === actionsVisible,\n active: item.conversationId === historyActiveId,\n })}\n onClick={onHistoryClick}\n {...(historyUrlTemplate\n ? { url: parseTemplate(historyUrlTemplate, item) }\n : null)}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title || t(K.UNTITLED)}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={mergedHistoryActions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.conversationId : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))\n ) : (\n <li className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </li>\n )}\n {historyError ? (\n <li className=\"error\">Failed to load chat history</li>\n ) : null}\n </ul>\n {!historyCollapsed && nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </div>\n </div>\n );\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { getHistory } from \"@next-core/runtime\";\nimport classNames from \"classnames\";\nimport type { DropdownActionsProps } from \"@next-bricks/basic/dropdown-actions\";\nimport type { ActionType } from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n WrappedDropdownActions,\n WrappedEasyopsAvatar,\n WrappedIcon,\n WrappedIconButton,\n WrappedLink,\n} from \"./bricks.js\";\nimport {\n ChatHistory,\n type ActionClickDetail,\n type ChatHistoryRef,\n type Project,\n type ProjectActionClickDetail,\n} from \"./ChatHistory.js\";\n\ninitializeI18n(NS, locales);\n\nconst SIDEBAR_ICON: GeneralIconProps = {\n lib: \"easyops\",\n icon: \"sidebar\",\n};\n\nconst WrappedElevoLogo = wrapBrick(\"ai-portal.elevo-logo\");\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ElevoSidebarProps {\n userInstanceId?: string;\n behavior?: \"default\" | \"drawer\";\n bordered?: boolean;\n logoUrl?: string;\n newChatUrl?: string;\n newChatLinkWhenCollapsed?: boolean;\n historyActiveId?: string;\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n projectActiveId?: string;\n projectUrlTemplate?: string;\n projectActions?: ActionType[];\n links?: SidebarLink[];\n canAddProject?: boolean;\n}\n\nexport interface SidebarLink {\n title: string;\n url: string;\n icon: GeneralIconProps;\n}\n\nconst ElevoSidebarComponent = forwardRef(LegacyElevoSidebarComponent);\n\ninterface ElevoSidebarRef extends ChatHistoryRef {\n close: () => void;\n}\n\n/**\n * 构件 `ai-portal.elevo-sidebar`\n */\nexport\n@defineElement(\"ai-portal.elevo-sidebar\", {\n styleTexts: [styleText],\n})\nclass ElevoSidebar extends ReactNextElement implements ElevoSidebarProps {\n @property()\n accessor userInstanceId: string | undefined;\n\n @property()\n accessor behavior: \"default\" | \"drawer\" | undefined;\n\n @property({ type: Boolean, render: false })\n accessor bordered: boolean | undefined;\n\n @property()\n accessor logoUrl: string | undefined;\n\n @property()\n accessor newChatUrl: string | undefined;\n\n @property({ type: Boolean })\n accessor newChatLinkWhenCollapsed: boolean | undefined;\n\n @property()\n accessor historyActiveId: string | undefined;\n\n @property()\n accessor historyUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor historyActions: ActionType[] | undefined;\n\n @property()\n accessor projectActiveId: string | undefined;\n\n @property()\n accessor projectUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor projectActions: ActionType[] | undefined;\n\n @property({ attribute: false })\n accessor links: SidebarLink[] | undefined;\n\n @property({ type: Boolean })\n accessor canAddProject: boolean | undefined = true;\n\n @event({ type: \"logout\" })\n accessor #logout!: EventEmitter<void>;\n\n #handleLogout = () => {\n this.#logout.emit();\n };\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n @event({ type: \"project.action.click\" })\n accessor #projectActionClick!: EventEmitter<ProjectActionClickDetail>;\n\n #handleProjectActionClick = (detail: ProjectActionClickDetail) => {\n this.#projectActionClick.emit(detail);\n };\n\n @event({ type: \"add.project\" })\n accessor #addProject!: EventEmitter<void>;\n\n #handleAddProject = () => {\n this.#addProject.emit();\n };\n\n #ref = createRef<ElevoSidebarRef>();\n\n /**\n * @param delay Delay in milliseconds before pulling the latest chat history.\n */\n @method()\n pullHistory(delay: number) {\n // Wait several seconds to let the task title to be summarized.\n setTimeout(() => {\n this.#ref.current?.pull();\n }, delay);\n }\n\n @method()\n close() {\n this.#ref.current?.close();\n }\n\n @method()\n removeProject(projectId: string) {\n this.#ref.current?.removeProject?.(projectId);\n }\n\n @method()\n addProject(project: Project) {\n this.#ref.current?.addProject?.(project);\n }\n\n @method()\n moveConversation(conversationId: string) {\n this.#ref.current?.moveConversation?.(conversationId);\n }\n\n render() {\n return (\n <ElevoSidebarComponent\n ref={this.#ref}\n userInstanceId={this.userInstanceId}\n behavior={this.behavior}\n logoUrl={this.logoUrl}\n newChatUrl={this.newChatUrl}\n newChatLinkWhenCollapsed={this.newChatLinkWhenCollapsed}\n historyActiveId={this.historyActiveId}\n historyUrlTemplate={this.historyUrlTemplate}\n historyActions={this.historyActions}\n projectActiveId={this.projectActiveId}\n projectUrlTemplate={this.projectUrlTemplate}\n projectActions={this.projectActions}\n links={this.links}\n canAddProject={this.canAddProject}\n onLogout={this.#handleLogout}\n onActionClick={this.#handleActionClick}\n onProjectActionClick={this.#handleProjectActionClick}\n onAddProject={this.#handleAddProject}\n />\n );\n }\n}\n\ninterface ElevoSidebarComponentProps extends ElevoSidebarProps {\n onLogout: () => void;\n onActionClick: (detail: ActionClickDetail) => void;\n onProjectActionClick: (detail: ProjectActionClickDetail) => void;\n onAddProject: () => void;\n}\n\nfunction LegacyElevoSidebarComponent(\n {\n userInstanceId,\n behavior,\n logoUrl,\n newChatUrl,\n newChatLinkWhenCollapsed,\n historyActiveId,\n historyUrlTemplate,\n historyActions,\n projectActiveId,\n projectUrlTemplate,\n projectActions,\n links,\n canAddProject,\n onLogout,\n onActionClick,\n onProjectActionClick,\n onAddProject,\n }: ElevoSidebarComponentProps,\n ref: React.Ref<ElevoSidebarRef>\n) {\n const [collapsed, setCollapsed] = useState(behavior === \"drawer\");\n const handleCollapse = useCallback(() => {\n setCollapsed(true);\n }, []);\n const handleExpand = useCallback(() => {\n setCollapsed(false);\n }, []);\n\n useEffect(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const handleClickMask = useCallback(() => {\n setCollapsed(true);\n }, []);\n\n const handleHistoryClick = useCallback(() => {\n if (behavior === \"drawer\") {\n setCollapsed(true);\n }\n }, [behavior]);\n\n const dropdownActions = useMemo<DropdownActionsProps[\"actions\"]>(\n () => [\n {\n key: \"logout\",\n icon: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"arrow-right-from-bracket\",\n },\n text: t(K.LOGOUT),\n },\n {\n key: \"switch-language\",\n icon: {\n lib: \"easyops\",\n icon: \"language\",\n },\n text: t(K.SWITCH_LANGUAGE),\n },\n ],\n []\n );\n\n const historyRef = useRef<ChatHistoryRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n close: () => {\n setCollapsed(true);\n },\n pull: () => {\n historyRef.current?.pull();\n },\n removeProject: (projectId: string) => {\n historyRef.current?.removeProject?.(projectId);\n },\n addProject: (project: Project) => {\n historyRef.current?.addProject?.(project);\n },\n moveConversation: (conversationId: string) => {\n historyRef.current?.moveConversation?.(conversationId);\n },\n }),\n []\n );\n\n return (\n <div className={classNames(\"container\", { collapsed })}>\n {behavior === \"drawer\" && !collapsed && (\n <div className=\"mask\" onClick={handleClickMask} />\n )}\n <div className=\"alternative\">\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleExpand}\n />\n {newChatLinkWhenCollapsed && (\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n )}\n </div>\n <div className=\"sidebar\">\n <div className=\"logo-bar\">\n <WrappedLink url={logoUrl} className=\"logo-link\">\n <WrappedElevoLogo />\n </WrappedLink>\n <WrappedIconButton\n icon={SIDEBAR_ICON}\n variant=\"light\"\n onClick={handleCollapse}\n />\n </div>\n <WrappedLink className=\"new-chat\" url={newChatUrl}>\n <WrappedIcon\n className=\"new-chat-icon\"\n lib=\"easyops\"\n icon=\"new-chat\"\n />\n {t(K.NEW_CHAT)}\n </WrappedLink>\n {links?.length ? (\n <div className=\"links\">\n {links.map((link, index) => (\n <WrappedLink className=\"link\" key={index} url={link.url}>\n <WrappedIcon className=\"icon\" {...link.icon} />\n <span className=\"title\">{link.title}</span>\n </WrappedLink>\n ))}\n </div>\n ) : null}\n <ChatHistory\n ref={historyRef}\n canAddProject={canAddProject}\n historyActiveId={historyActiveId}\n historyUrlTemplate={historyUrlTemplate}\n historyActions={historyActions}\n projectActiveId={projectActiveId}\n projectUrlTemplate={projectUrlTemplate}\n projectActions={projectActions}\n onActionClick={onActionClick}\n onHistoryClick={handleHistoryClick}\n onProjectActionClick={onProjectActionClick}\n onAddProject={onAddProject}\n />\n <div className=\"footer\">\n <WrappedDropdownActions\n className=\"dropdown\"\n actions={dropdownActions}\n onActionClick={async (e) => {\n if (e.detail.key === \"logout\") {\n onLogout();\n } else {\n await i18n.changeLanguage(\n i18n.language && i18n.language.split(\"-\")[0] === \"en\"\n ? \"zh\"\n : \"en\"\n );\n getHistory().reload();\n }\n }}\n >\n <button className=\"account\">\n <WrappedEasyopsAvatar\n nameOrInstanceId={userInstanceId}\n showName\n size=\"xs\"\n />\n </button>\n </WrappedDropdownActions>\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport styleText from \"./styles.shadow.css\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface IconButtonProps {\n icon?: GeneralIconProps;\n tooltip?: string;\n disabled?: boolean;\n variant?: IconButtonVariant;\n}\n\nexport type IconButtonVariant =\n | \"default\"\n | \"light\"\n | \"mini\"\n | \"mini-light\"\n | \"bordered\";\n\n/**\n * 构件 `ai-portal.icon-button`\n */\nexport\n@defineElement(\"ai-portal.icon-button\", {\n styleTexts: [styleText],\n})\nclass IconButton extends ReactNextElement implements IconButtonProps {\n @property({ attribute: false })\n accessor icon: GeneralIconProps | undefined;\n\n @property()\n accessor tooltip: string | undefined;\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property({ render: false })\n accessor variant: IconButtonVariant | undefined;\n\n render() {\n return (\n <IconButtonComponent\n icon={this.icon}\n tooltip={this.tooltip}\n disabled={this.disabled}\n />\n );\n }\n}\n\nfunction IconButtonComponent({ icon, tooltip, disabled }: IconButtonProps) {\n const btn = (\n <button disabled={disabled}>\n <WrappedIcon {...icon} />\n </button>\n );\n\n if (tooltip) {\n return <WrappedTooltip content={tooltip}>{btn}</WrappedTooltip>;\n }\n\n return btn;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ALL = \"ALL\",\n EXPLORE_EXCELLENT_CASES = \"EXPLORE_EXCELLENT_CASES\",\n}\n\nconst en: Locale = {\n [K.ALL]: \"All\",\n [K.EXPLORE_EXCELLENT_CASES]: \"Explore excellent cases\",\n};\n\nconst zh: Locale = {\n [K.ALL]: \"全部\",\n [K.EXPLORE_EXCELLENT_CASES]: \"探索优秀案例\",\n};\n\nexport const NS = \"bricks/ai-portal/show-cases\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\nimport type { ShowCase, ShowCaseProps } from \"../show-case/index.js\";\nimport type { ShowCaseType } from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedShowCase = wrapBrick<ShowCase, ShowCaseProps>(\n \"ai-portal.show-case\"\n);\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface ShowCasesProps {\n list?: ShowCaseType[];\n limit?: number;\n}\n\n/**\n * 构件 `ai-portal.show-cases`\n */\nexport\n@defineElement(\"ai-portal.show-cases\", {\n styleTexts: [styleText],\n})\nclass ShowCases extends ReactNextElement implements ShowCasesProps {\n @property({ attribute: false })\n accessor list: ShowCaseType[] | undefined;\n\n @property({ type: Number })\n accessor limit: number | undefined;\n\n render() {\n return <ShowCasesComponent list={this.list} limit={this.limit} />;\n }\n}\n\nfunction ShowCasesComponent({ list, limit }: ShowCasesProps) {\n // Grouping the list by scenario\n const groups = useMemo<string[]>(() => {\n return [\"\", ...new Set(list?.map((item) => item.scenario).filter(Boolean))];\n }, [list]);\n\n const [activeGroup, setActiveGroup] = useState(\"\");\n\n const filteredList = useMemo(() => {\n if (!list) {\n return;\n }\n let filtered = list;\n if (activeGroup) {\n filtered = filtered.filter((item) => item.scenario === activeGroup);\n }\n if (limit) {\n filtered = filtered.slice(0, limit);\n }\n return filtered;\n }, [activeGroup, list, limit]);\n\n const tabs = useMemo<Tab[]>(() => {\n return groups.map((group) => ({\n id: group,\n label: group === \"\" ? t(K.ALL) : group,\n }));\n }, [groups]);\n\n if (!list?.length) {\n return null;\n }\n\n return (\n <>\n <div className=\"tips\">{`${t(K.EXPLORE_EXCELLENT_CASES)} ↓`}</div>\n <WrappedTabList\n tabs={tabs}\n activeTab={activeGroup}\n onTabClick={(event) => setActiveGroup(event.detail.id)}\n />\n <ul className=\"cases\">\n {filteredList?.map((item) => (\n <li key={item.conversationId}>\n <WrappedShowCase\n caseTitle={item.title}\n summary={item.summary}\n url={item.url}\n />\n </li>\n ))}\n </ul>\n </>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n MCP_HUB = \"MCP_HUB\",\n ALL = \"ALL\",\n\n SERVER_cmdb = \"SERVER_cmdb\",\n SERVER_cmdb_product_helper = \"SERVER_cmdb_product_helper\",\n SERVER_alert = \"SERVER_alert\",\n SERVER_web_builder = \"SERVER_web_builder\",\n SERVER_web_builder2 = \"SERVER_web_builder2\",\n SERVER_host_troubleshooting = \"SERVER_host_troubleshooting\",\n SERVER_system_inspection = \"SERVER_system_inspection\",\n SERVER_grafana = \"SERVER_grafana\",\n SERVER_kubernetes = \"SERVER_kubernetes\",\n SERVER_llm = \"SERVER_llm\",\n}\n\nconst en: Locale = {\n [K.MCP_HUB]: \"MCP Hub\",\n [K.ALL]: \"All\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"Alert\",\n [K.SERVER_web_builder]: \"View\",\n [K.SERVER_web_builder2]: \"View\",\n [K.SERVER_host_troubleshooting]: \"Host Troubleshooting\",\n [K.SERVER_system_inspection]: \"System Inspection\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"LLM\",\n};\n\nconst zh: Locale = {\n [K.MCP_HUB]: \"MCP 中心\",\n [K.ALL]: \"全部\",\n\n [K.SERVER_cmdb]: \"CMDB\",\n [K.SERVER_cmdb_product_helper]: \"CMDB\",\n [K.SERVER_alert]: \"告警\",\n [K.SERVER_web_builder]: \"视图\",\n [K.SERVER_web_builder2]: \"视图\",\n [K.SERVER_host_troubleshooting]: \"主机故障排查\",\n [K.SERVER_system_inspection]: \"系统巡检\",\n [K.SERVER_grafana]: \"Grafana\",\n [K.SERVER_kubernetes]: \"Kubernetes\",\n [K.SERVER_llm]: \"大模型\",\n};\n\nexport const NS = \"bricks/ai-portal/mcp-tools\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\n\ninitializeI18n(NS, locales);\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\nconst PLATFORM_CONFIG = new Map([\n [\n \"EasyOps平台\",\n {\n servers: [\"cmdb\", \"cmdb_product_helper\"],\n },\n ],\n [\n \"Grafana\",\n {\n servers: [\"grafana\"],\n },\n ],\n [\n \"Kubernetes\",\n {\n servers: [\"kubernetes\"],\n },\n ],\n [\n \"监控事件\",\n {\n servers: [\"alert\"],\n },\n ],\n [\n \"浏览器\",\n {\n servers: [\"playwright\"],\n },\n ],\n [\n \"低代码\",\n {\n servers: [\"web-builder\", \"web-builder2\"],\n },\n ],\n [\n \"大模型\",\n {\n servers: [\"llm\"],\n },\n ],\n [\n \"故障排查\",\n {\n servers: [\"host-troubleshooting\"],\n },\n ],\n]);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface McpToolsProps {\n list?: McpTool[];\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface McpTool {\n name: string;\n title: string;\n description: string;\n icon?: GeneralIconProps;\n server: McpServer;\n}\n\nexport interface McpServer {\n id: string;\n name: string;\n}\n\n/**\n * 构件 `ai-portal.mcp-tools`\n */\nexport\n@defineElement(\"ai-portal.mcp-tools\", {\n styleTexts: [styleText],\n})\nclass McpTools extends ReactNextElement implements McpToolsProps {\n @property({ attribute: false })\n accessor list: McpTool[] | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <McpToolsComponent list={this.list} withContainer={this.withContainer} />\n );\n }\n}\n\nfunction McpToolsComponent({ list, withContainer }: McpToolsProps) {\n // Grouping the list by server name\n const [groupMap, platformMap] = useMemo(() => {\n const map = new Map<string, McpTool[]>();\n const platformMap = new Map<string, string[]>();\n list?.forEach((item) => {\n const groupName = t(\n `SERVER_${item.server.id.replaceAll(\"-\", \"_\")}`,\n item.server.name\n );\n let list = map.get(groupName);\n if (!list) {\n map.set(groupName, (list = []));\n }\n list.push(item);\n\n const platform = [...PLATFORM_CONFIG.entries()].find(\n ([_name, { servers }]) => servers.includes(item.server.id)\n );\n const platformName = platform ? platform[0] : \"其他\";\n let groups = platformMap.get(platformName);\n if (!groups) {\n platformMap.set(platformName, (groups = []));\n }\n groups.push(groupName);\n });\n\n const orderedNames = [\"CMDB\"];\n const orderedMap = new Map<string, McpTool[]>(\n [...map.entries()].sort(([nameA], [nameB]) => {\n const indexA = orderedNames.indexOf(nameA);\n const indexB = orderedNames.indexOf(nameB);\n return (\n (indexA < 0 ? orderedNames.length : indexA) -\n (indexB < 0 ? orderedNames.length : indexB)\n );\n })\n );\n\n return [orderedMap, platformMap];\n }, [list]);\n\n const platforms = useMemo(() => {\n const orderedNames = [...PLATFORM_CONFIG.keys()];\n const names = [...platformMap.keys()];\n names.sort((a, b) => {\n const aIndex = orderedNames.indexOf(a);\n const bIndex = orderedNames.indexOf(b);\n return (\n (aIndex < 0 ? orderedNames.length : aIndex) -\n (bIndex < 0 ? orderedNames.length : bIndex)\n );\n });\n return [\"\", ...names];\n }, [platformMap]);\n\n const [activePlatform, setActivePlatform] = useState(\"\");\n\n const filteredGroups = useMemo(() => {\n const groupedList = [...groupMap];\n if (!activePlatform) {\n return groupedList;\n }\n const platformGroups = platformMap.get(activePlatform);\n return groupedList.filter(([group]) => platformGroups?.includes(group));\n }, [activePlatform, groupMap, platformMap]);\n\n const tabs = useMemo<Tab[]>(() => {\n return platforms.map((platform) => ({\n id: platform,\n label: platform === \"\" ? t(K.ALL) : platform,\n }));\n }, [platforms]);\n\n const node = (\n <>\n <WrappedTabList\n tabs={tabs}\n activeTab={activePlatform}\n onTabClick={(event) => setActivePlatform(event.detail.id)}\n />\n <ul className=\"groups\">\n {filteredGroups?.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index} className=\"item\">\n <div className=\"heading\">\n <WrappedIcon\n className=\"icon\"\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n <div className=\"title\">{item.title}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.MCP_HUB)}</h1>\n {node}\n </div>\n );\n}\n","// istanbul ignore file: experimental\nimport React, { createRef, forwardRef } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport type { FeedbackDetail } from \"../cruise-canvas/interfaces.js\";\nimport { ChatStreamComponent } from \"./ChatStream.js\";\nimport type {\n ExampleProject,\n RequestStore,\n ShowCaseType,\n} from \"../shared/interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatStreamProps {\n conversationId?: string;\n initialRequest?: RequestStore | null;\n replay?: boolean;\n replayDelay?: number;\n supports?: Record<string, boolean>;\n showHumanActions?: boolean;\n showFeedback?: boolean;\n showFeedbackAfterFailed?: boolean;\n showFeedbackOnView?: boolean;\n showUiSwitch?: boolean;\n previewUrlTemplate?: string;\n showCases?: ShowCaseType[];\n exampleProjects?: ExampleProject[];\n tryItOutUrl?: string;\n}\n\nexport interface ConversationDetail {\n projectId?: string;\n}\n\nconst ForwardedChatStreamComponent = forwardRef(ChatStreamComponent);\n\n/**\n * 构件 `ai-portal.chat-stream`\n */\nexport\n@defineElement(\"ai-portal.chat-stream\", {\n // Will wrap v2 bricks which don't support in shadow DOM.\n shadowOptions: false,\n})\nclass ChatStream extends ReactNextElement implements ChatStreamProps {\n @property()\n accessor conversationId: string | undefined;\n\n /** 初始请求数据。仅初始设置有效。 */\n @property({ attribute: false, render: false })\n accessor initialRequest: RequestStore | undefined | null;\n\n /** 是否启用回放。仅初始设置有效。 */\n @property({ type: Boolean })\n accessor replay: boolean | undefined;\n\n /**\n * 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。\n *\n * @default 2\n */\n @property({ type: Number })\n accessor replayDelay: number | undefined;\n\n @property({ attribute: false })\n accessor supports: Record<string, boolean> | undefined;\n\n @property({ type: Boolean })\n accessor showHumanActions: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedback: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackAfterFailed: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showFeedbackOnView: boolean | undefined;\n\n @property({ type: Boolean })\n accessor showUiSwitch: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor hideMermaid: boolean | undefined;\n\n @property()\n accessor previewUrlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor showCases: ShowCaseType[] | undefined;\n\n @property({ attribute: false })\n accessor exampleProjects: ExampleProject[] | undefined;\n\n @property()\n accessor tryItOutUrl: string | undefined;\n\n @event({ type: \"share\" })\n accessor #shareEvent!: EventEmitter<void>;\n\n #onShare = () => {\n this.#shareEvent.emit();\n };\n\n @event({ type: \"terminate\" })\n accessor #terminateEvent!: EventEmitter<void>;\n\n #onTerminate = () => {\n this.#terminateEvent.emit();\n };\n\n @event({ type: \"feedback.submit\" })\n accessor #feedbackSubmitEvent!: EventEmitter<FeedbackDetail>;\n\n #onSubmitFeedback = (detail: FeedbackDetail) => {\n this.#feedbackSubmitEvent.emit(detail);\n };\n\n @event({ type: \"feedback.on.view\" })\n accessor #feedbackOnViewEvent!: EventEmitter<string>;\n\n #onFeedbackOnView = (viewId: string) => {\n this.#feedbackOnViewEvent.emit(viewId);\n };\n\n @event({ type: \"ui.switch\" })\n accessor #switch!: EventEmitter<\"canvas\">;\n\n #onSwitchToCanvas = () => {\n this.#switch.emit(\"canvas\");\n };\n\n @event({ type: \"detail.change\" })\n accessor #detailChange!: EventEmitter<ConversationDetail>;\n\n #onDetailChange = (detail: ConversationDetail) => {\n this.#detailChange.emit(detail);\n };\n\n #ref = createRef<ChatStreamRef>();\n\n @method()\n resumed() {\n this.#ref.current?.resumed?.();\n }\n\n @method()\n feedbackSubmitDone() {\n this.#ref.current?.feedbackSubmitDone();\n }\n\n @method()\n feedbackSubmitFailed() {\n this.#ref.current?.feedbackSubmitFailed();\n }\n\n @method()\n feedbackOnViewDone(viewId: string) {\n this.#ref.current?.feedbackOnViewDone(viewId);\n }\n\n render() {\n return (\n <ForwardedChatStreamComponent\n conversationId={this.conversationId!}\n initialRequest={this.initialRequest}\n replay={this.replay}\n replayDelay={this.replayDelay}\n supports={this.supports}\n showHumanActions={this.showHumanActions}\n showFeedback={this.showFeedback}\n showFeedbackAfterFailed={this.showFeedbackAfterFailed}\n showFeedbackOnView={this.showFeedbackOnView}\n showUiSwitch={this.showUiSwitch}\n previewUrlTemplate={this.previewUrlTemplate}\n showCases={this.showCases}\n exampleProjects={this.exampleProjects}\n tryItOutUrl={this.tryItOutUrl}\n onShare={this.#onShare}\n onTerminate={this.#onTerminate}\n onSubmitFeedback={this.#onSubmitFeedback}\n onSwitchToCanvas={this.#onSwitchToCanvas}\n onFeedbackOnView={this.#onFeedbackOnView}\n onDetailChange={this.#onDetailChange}\n />\n );\n }\n}\n\nexport interface ChatStreamRef {\n resumed?: () => void;\n feedbackSubmitDone: () => void;\n feedbackSubmitFailed: () => void;\n feedbackOnViewDone: (viewId: string) => void;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AI_EMPLOYEES = \"AI_EMPLOYEES\",\n UNTITLED = \"UNTITLED\",\n}\n\nconst en: Locale = {\n AI_EMPLOYEES: \"AI Employees\",\n UNTITLED: \"Untitled\",\n};\n\nconst zh: Locale = {\n AI_EMPLOYEES: \"Ai 数字人\",\n UNTITLED: \"未命名\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-employees\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useMemo, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type {\n Tab,\n TabList,\n TabListEvents,\n TabListMapping,\n TabListProps,\n} from \"../tab-list/index.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTabList = wrapBrick<\n TabList,\n TabListProps,\n TabListEvents,\n TabListMapping\n>(\"ai-portal.tab-list\", {\n onTabClick: \"tab.click\",\n});\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIEmployeesProps {\n list?: Employee[];\n industries?: string[];\n // roles?: string[];\n urlTemplate?: string;\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface Employee {\n name: string;\n industry: string;\n role: string;\n description: string;\n avatar?: string;\n}\n\n/**\n * 构件 `ai-portal.ai-employees`\n */\nexport\n@defineElement(\"ai-portal.ai-employees\", {\n styleTexts: [styleText],\n})\nclass AIEmployees extends ReactNextElement implements AIEmployeesProps {\n @property({ attribute: false })\n accessor list: Employee[] | undefined;\n\n @property({ attribute: false })\n accessor industries: string[] | undefined;\n\n // @property({ attribute: false })\n // accessor roles: string[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <AIEmployeesComponent\n list={this.list}\n industries={this.industries}\n urlTemplate={this.urlTemplate}\n withContainer={this.withContainer}\n />\n );\n }\n}\n\nfunction AIEmployeesComponent({\n list,\n industries: _industries,\n urlTemplate,\n withContainer,\n}: AIEmployeesProps) {\n const industries = useMemo(() => {\n return [\n ...new Set([\n ...(_industries ?? []),\n ...(list ?? []).map((item) => item.industry),\n ]),\n ];\n }, [_industries, list]);\n\n const [activeIndustry, setActiveIndustry] = useState(industries[0]);\n\n // Grouping the list by role\n const groups = useMemo(() => {\n const map = new Map<string, Employee[]>();\n list?.forEach((item) => {\n if (item.industry !== activeIndustry) {\n return;\n }\n let array = map.get(item.role);\n if (!array) {\n map.set(item.role, (array = []));\n }\n array.push(item);\n });\n return [...map.entries()];\n }, [activeIndustry, list]);\n\n const tabs = useMemo<Tab[]>(() => {\n return industries.map((industry) => ({\n id: industry,\n label: industry || t(K.UNTITLED),\n }));\n }, [industries]);\n\n const node = (\n <>\n <WrappedTabList\n tabs={tabs}\n activeTab={activeIndustry}\n onTabClick={(event) => setActiveIndustry(event.detail.id)}\n />\n <ul className=\"groups\">\n {groups.map(([groupName, items]) => (\n <li key={groupName} className=\"group\">\n <h2>{groupName}</h2>\n <ul className=\"list\">\n {items.map((item, index) => (\n <li key={index}>\n <WrappedLink\n className={classNames(\"link\", { clickable: !!urlTemplate })}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"heading\">\n <div className=\"avatar\">\n {item.avatar ? (\n <img src={item.avatar} />\n ) : (\n <WrappedIcon lib=\"antd\" icon=\"user\" />\n )}\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"description\">{item.description}</div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.AI_EMPLOYEES)}</h1>\n {node}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n AGENTS = \"AGENTS\",\n}\n\nconst en: Locale = {\n AGENTS: \"Agents\",\n};\n\nconst zh: Locale = {\n AGENTS: \"智能体\",\n};\n\nexport const NS = \"bricks/ai-portal/ai-agents\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\nconst DEFAULT_TOOL_ICON: GeneralIconProps = {\n lib: \"antd\",\n icon: \"tool\",\n};\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface AIAgentsProps {\n list?: Agent[];\n urlTemplate?: string;\n /** @deprecated */\n withContainer?: boolean;\n}\n\nexport interface Agent {\n name: string;\n description: string;\n icon?: GeneralIconProps;\n tags?: string[];\n}\n\n/**\n * 构件 `ai-portal.ai-agents`\n */\nexport\n@defineElement(\"ai-portal.ai-agents\", {\n styleTexts: [styleText],\n})\nclass AIAgents extends ReactNextElement implements AIAgentsProps {\n @property({ attribute: false })\n accessor list: Agent[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n /** @deprecated */\n @property({ type: Boolean })\n accessor withContainer = true;\n\n render() {\n return (\n <AIAgentsComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n withContainer={this.withContainer}\n />\n );\n }\n}\n\nfunction AIAgentsComponent({\n list,\n urlTemplate,\n withContainer,\n}: AIAgentsProps) {\n const node = (\n <>\n <ul className=\"list\">\n {list?.map((item, index) => (\n <li key={index}>\n <WrappedLink\n className={classNames(\"link\", { clickable: !!urlTemplate })}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"heading\">\n <div className=\"icon\">\n <WrappedIcon\n {...(item.icon ?? DEFAULT_TOOL_ICON)}\n fallback={DEFAULT_TOOL_ICON}\n />\n </div>\n <div className=\"title\">{item.name}</div>\n </div>\n <div className=\"tags\">\n {item.tags?.map((tag, tagIndex) => (\n <span key={tagIndex} className=\"tag\">\n {tag}\n </span>\n ))}\n </div>\n <div className=\"description\">{item.description}</div>\n </WrappedLink>\n </li>\n ))}\n </ul>\n </>\n );\n\n if (!withContainer) {\n return node;\n }\n\n return (\n <div className=\"container\">\n <h1>{t(K.AGENTS)}</h1>\n {node}\n </div>\n );\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport type { RequestStore } from \"../shared/interfaces\";\n\nlet store: RequestStore | null = null;\n\nexport function saveRequestStore(value: RequestStore): void {\n store = value;\n}\n\nexport function loadRequestStore(): RequestStore | null {\n const value = store;\n store = null;\n return value;\n}\n\nexport function clearRequestStore(): void {\n store = null;\n}\n\ncustomElements.define(\n \"ai-portal.save-request-store\",\n createProviderClass(saveRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.load-request-store\",\n createProviderClass(loadRequestStore)\n);\n\ncustomElements.define(\n \"ai-portal.clear-request-store\",\n createProviderClass(clearRequestStore)\n);\n","import React, { useEffect } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { getRuntime } from \"@next-core/runtime\";\nimport \"@next-core/theme\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport styleText from \"./styles.shadow.css\";\n\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PageContainerProps {\n pageTitle?: string;\n breadcrumbs?: Breadcrumb[];\n size?: \"medium\" | \"small\";\n}\n\nexport interface Breadcrumb {\n text: string;\n url: string;\n}\n\n/**\n * 构件 `ai-portal.page-container`\n *\n * @slot - 内容\n * @slot toolbar - 工具栏\n */\nexport\n@defineElement(\"ai-portal.page-container\", {\n styleTexts: [styleText],\n})\nclass PageContainer extends ReactNextElement implements PageContainerProps {\n @property()\n accessor pageTitle: string | undefined;\n\n @property({ attribute: false })\n accessor breadcrumbs: Breadcrumb[] | undefined;\n\n @property({ render: false })\n accessor size: \"medium\" | \"small\" | undefined;\n\n render() {\n return (\n <PageContainerComponent\n pageTitle={this.pageTitle}\n breadcrumbs={this.breadcrumbs}\n />\n );\n }\n}\n\nfunction PageContainerComponent({\n breadcrumbs,\n pageTitle,\n}: PageContainerProps) {\n useEffect(() => {\n if (typeof pageTitle === \"string\") {\n getRuntime().applyPageTitle(pageTitle);\n }\n }, [pageTitle]);\n\n return (\n <div className=\"container\">\n {pageTitle || breadcrumbs?.length ? (\n <div className=\"header\">\n <nav>\n {breadcrumbs?.length ? (\n <ul className=\"breadcrumbs\">\n {breadcrumbs.map((item, index) => (\n <li key={index}>\n <WrappedLink url={item.url}>{item.text}</WrappedLink>\n </li>\n ))}\n </ul>\n ) : null}\n {pageTitle ? <h1>{pageTitle}</h1> : null}\n </nav>\n <slot name=\"toolbar\" />\n </div>\n ) : null}\n <slot />\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface TabListProps {\n tabs?: Tab[];\n activeTab?: string;\n}\n\nexport interface Tab {\n id: string;\n label: string;\n}\n\nexport interface TabListEvents {\n \"tab.click\": CustomEvent<Tab>;\n}\n\nexport interface TabListMapping {\n onTabClick: \"tab.click\";\n}\n\n/**\n * 构件 `ai-portal.tab-list`\n *\n * @part tabs - The tab list container\n * @part tab - The individual tab\n */\nexport\n@defineElement(\"ai-portal.tab-list\", {\n styleTexts: [styleText],\n})\nclass TabList extends ReactNextElement implements TabListProps {\n @property({ attribute: false })\n accessor tabs: Tab[] | undefined;\n\n @property({ attribute: false })\n accessor activeTab: string | undefined;\n\n @event({ type: \"tab.click\" })\n accessor #tabClick!: EventEmitter<Tab>;\n\n #handleTabClick = (tab: Tab) => {\n this.activeTab = tab.id;\n this.#tabClick.emit(tab);\n };\n\n render() {\n return (\n <TabListComponent\n tabs={this.tabs}\n activeTab={this.activeTab}\n onTabClick={this.#handleTabClick}\n />\n );\n }\n}\n\ninterface TabListComponentProps extends TabListProps {\n onTabClick: (tab: Tab) => void;\n}\n\nfunction TabListComponent({\n tabs,\n activeTab,\n onTabClick,\n}: TabListComponentProps) {\n return (\n <ul className=\"tabs\" part=\"tabs\">\n {tabs?.map((tab) => (\n <li\n key={tab.id}\n part=\"tab\"\n className={classNames(\"tab\", { active: tab.id === activeTab })}\n >\n <a onClick={() => onTabClick(tab)}>{tab.label}</a>\n </li>\n ))}\n </ul>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n PLEASE_SELECT = \"PLEASE_SELECT\",\n SEARCH_PLACEHOLDER = \"SEARCH_PLACEHOLDER\",\n SEARCH_NO_DATA = \"SEARCH_NO_DATA\",\n}\n\nconst en: Locale = {\n PLEASE_SELECT: \"Please Select\",\n SEARCH_PLACEHOLDER: \"Search\",\n SEARCH_NO_DATA: \"No Data\",\n};\n\nconst zh: Locale = {\n PLEASE_SELECT: \"请选择\",\n SEARCH_PLACEHOLDER: \"搜索\",\n SEARCH_NO_DATA: \"暂无结果\",\n};\n\nexport const NS = \"bricks/ai-portal/dropdown-select\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useState, useEffect, useCallback, useMemo } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { debounce } from \"lodash\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n} from \"@next-bricks/basic/popover\";\nimport { Menu } from \"@next-bricks/basic/menu\";\nimport { MenuItem, MenuComponentProps } from \"@next-bricks/basic/menu-item\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport {\n LoadingContainer,\n LoadingContainerProps,\n} from \"@next-bricks/basic/loading-container\";\nimport { Input, InputEvents, InputProps } from \"@next-bricks/form/input\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n onBeforeVisibleChange: \"before.visible.change\",\n});\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLoadingContainer = wrapBrick<\n LoadingContainer,\n LoadingContainerProps\n>(\"eo-loading-container\");\n\nconst WrappedMenu = wrapBrick<Menu, unknown>(\"eo-menu\");\nconst WrappedMenuItem = wrapBrick<MenuItem, MenuComponentProps>(\"eo-menu-item\");\n\nexport interface InputEventsMap {\n onValueChange: \"change\";\n}\n\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onValueChange: \"change\",\n }\n);\n\nexport interface DropdownSelectProps {\n value?: string;\n options?: DropdownOptions[];\n labelMaxWidth?: string | number;\n dropdownMaxWidth?: string | number;\n dropdownContentStyle?: React.CSSProperties;\n showSearch?: boolean;\n searchPlaceholder?: string;\n loading?: boolean;\n}\n\ninterface DropdownOptions {\n label: string;\n value: string;\n disabled?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * 构件 `ai-portal.dropdown-select`\n */\nexport\n@defineElement(\"ai-portal.dropdown-select\", {\n styleTexts: [styleText],\n})\nclass DropdownSelect extends ReactNextElement implements DropdownSelectProps {\n @property()\n accessor value: string | undefined;\n\n @property({ attribute: false })\n accessor options: DropdownOptions[] | undefined;\n\n @property({ attribute: false })\n accessor labelMaxWidth: string | number | undefined;\n\n @property({ type: Boolean })\n accessor loading: boolean | undefined;\n\n @property({ attribute: false })\n accessor searchPlaceholder: string | undefined;\n\n @property({ attribute: false })\n accessor dropdownContentStyle: React.CSSProperties | undefined;\n\n /**\n * @default \"500px\"\n */\n @property({ attribute: false })\n accessor dropdownMaxWidth: string | number | undefined;\n\n /** 是否展示搜索框 */\n @property({ type: Boolean })\n accessor showSearch: boolean | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<DropdownOptions>;\n\n #handleChange = (option: DropdownOptions) => {\n this.#changeEvent.emit(option);\n };\n\n render() {\n return (\n <DropdownSelectComponent\n value={this.value}\n options={this.options}\n onChange={this.#handleChange}\n loading={this.loading}\n labelMaxWidth={this.labelMaxWidth}\n dropdownMaxWidth={this.dropdownMaxWidth}\n showSearch={this.showSearch}\n searchPlaceholder={this.searchPlaceholder}\n dropdownContentStyle={this.dropdownContentStyle}\n />\n );\n }\n}\n\ninterface DropdownSelectComponentProps extends DropdownSelectProps {\n onChange: (option: DropdownOptions) => void;\n}\n\nfunction DropdownSelectComponent({\n value: _value,\n options: _options,\n labelMaxWidth,\n dropdownMaxWidth,\n showSearch,\n loading,\n searchPlaceholder,\n dropdownContentStyle,\n onChange,\n}: DropdownSelectComponentProps) {\n const [open, setOpen] = useState(false);\n const [value, setValue] = useState(_value);\n const [q, setQ] = useState(\"\");\n const [options, setOptions] = useState<DropdownOptions[] | undefined>(\n _options\n );\n\n useEffect(() => {\n setOptions(_options);\n }, [_options]);\n\n const activeOption = useMemo(() => {\n return options?.find((opt) => opt.value === value);\n }, [options, value]);\n\n const filteredOptions = useMemo(() => {\n if (!q || !options) {\n return options;\n }\n return options?.filter((ops) =>\n ops.label.toLowerCase().includes(q.toLowerCase())\n );\n }, [options, q]);\n\n const handleBeforeVisibleChange = useCallback((e: CustomEvent<boolean>) => {\n setOpen(e.detail);\n if (!e.detail) {\n setQ(\"\");\n }\n }, []);\n\n const handleSearchChange = useMemo(\n () =>\n debounce((evt: CustomEvent<string>) => {\n setQ(evt.detail);\n }, 300),\n []\n );\n\n return (\n <WrappedPopover\n placement=\"bottom-start\"\n trigger=\"click\"\n active={open}\n arrow={false}\n distance={5}\n onBeforeVisibleChange={handleBeforeVisibleChange}\n >\n <span slot=\"anchor\" className=\"trigger\">\n <span className=\"label\" style={{ maxWidth: labelMaxWidth }}>\n {activeOption ? activeOption?.label : t(K.PLEASE_SELECT)}\n </span>\n <WrappedIcon lib=\"lucide\" icon={open ? \"chevron-up\" : \"chevron-down\"} />\n </span>\n <div className=\"dropdown\" style={{ maxWidth: dropdownMaxWidth }}>\n {showSearch && (\n <div className=\"search-container\">\n <WrappedInput\n className=\"search\"\n value={q}\n placeholder={searchPlaceholder || t(K.SEARCH_PLACEHOLDER)}\n onValueChange={handleSearchChange}\n >\n <WrappedIcon slot=\"prefix\" lib=\"antd\" icon=\"search\" />\n </WrappedInput>\n </div>\n )}\n <WrappedLoadingContainer\n loading={loading}\n delay={500}\n style={{ width: \"100%\" }}\n >\n <div className=\"dropdown-inner\" style={dropdownContentStyle}>\n <slot name=\"prefix\" />\n {!!filteredOptions?.length && (\n <WrappedMenu>\n {filteredOptions?.map((opt) => (\n <WrappedMenuItem\n key={opt.value}\n disabled={opt.disabled}\n className={value === opt.value ? \"active\" : undefined}\n onClick={(e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setOpen(false);\n if (value !== opt.value) {\n setValue(opt.value);\n onChange(opt);\n }\n }}\n >\n {opt.label}\n </WrappedMenuItem>\n ))}\n </WrappedMenu>\n )}\n {!filteredOptions?.length && (\n <div className=\"empty\">{t(K.SEARCH_NO_DATA)}</div>\n )}\n </div>\n </WrappedLoadingContainer>\n </div>\n </WrappedPopover>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n UNTITLED = \"UNTITLED\",\n}\n\nconst en: Locale = {\n UNTITLED: \"Untitled\",\n};\n\nconst zh: Locale = {\n UNTITLED: \"无标题\",\n};\n\nexport const NS = \"bricks/ai-portal/preview-container\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { Suspense, use, useEffect, useMemo, useRef } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { unstable_createRoot } from \"@next-core/runtime\";\nimport type { ParseResult } from \"@next-shared/tsx-parser\";\nimport {\n convertTsx,\n getViewTitle,\n type ConvertResult,\n} from \"@next-shared/tsx-converter\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoPageTitle,\n PageTitleProps,\n} from \"@next-bricks/basic/page-title\";\nimport type {\n EoMainView,\n MainViewProps,\n} from \"@next-bricks/containers/main-view\";\nimport type {\n EoNarrowView,\n NarrowViewProps,\n} from \"@next-bricks/containers/narrow-view\";\nimport { uniqueId } from \"lodash\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styles from \"./styles.module.css\";\nimport { getRemoteTsxParserWorker } from \"../shared/workers/tsxParser.js\";\nimport { createPortal } from \"../cruise-canvas/utils/createPortal.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedPageTitle = wrapBrick<EoPageTitle, PageTitleProps>(\n \"eo-page-title\"\n);\nconst WrappedMainView = wrapBrick<EoMainView, MainViewProps>(\"eo-main-view\");\nconst WrappedNarrowView = wrapBrick<EoNarrowView, NarrowViewProps>(\n \"eo-narrow-view\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PreviewContainerProps {\n source?: string;\n url?: string;\n}\n\n/**\n * 构件 `ai-portal.preview-container`\n */\nexport\n@defineElement(\"ai-portal.preview-container\", {\n shadowOptions: false,\n})\nclass PreviewContainer\n extends ReactNextElement\n implements PreviewContainerProps\n{\n @property({ attribute: false })\n accessor source: string | undefined;\n\n @property()\n accessor url: string | undefined;\n\n #rootId = uniqueId();\n\n render() {\n return (\n <Suspense\n fallback={\n <WrappedIcon\n lib=\"antd\"\n icon=\"loading-3-quarters\"\n spinning\n className={styles.loading}\n />\n }\n >\n <PreviewContainerComponent\n rootId={this.#rootId}\n source={this.source}\n url={this.url}\n />\n </Suspense>\n );\n }\n}\n\ninterface PreviewContainerComponentProps extends PreviewContainerProps {\n rootId: string;\n}\n\nfunction PreviewContainerComponent({\n rootId,\n source,\n url,\n}: PreviewContainerComponentProps) {\n const parsedResultPromise = useMemo(() => {\n if (!source) {\n return Promise.resolve(null);\n }\n return parse(source).catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Failed to parse view:\", error);\n return null;\n });\n }, [source]);\n\n const parsedResult = use(parsedResultPromise);\n\n const convertedResultPromise = useMemo(() => {\n if (!parsedResult) {\n return Promise.resolve(null);\n }\n return convertTsx(parsedResult, {\n rootId,\n expanded: true,\n }).catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Failed to convert view:\", error);\n return null;\n });\n }, [parsedResult, rootId]);\n\n const convertedResult = use(convertedResultPromise);\n\n const viewTitle = useMemo(() => getViewTitle(parsedResult), [parsedResult]);\n\n return (\n <RenderComponent\n rootId={rootId}\n pageTitle={viewTitle}\n convertedResult={convertedResult}\n url={url}\n />\n );\n}\n\ninterface RenderComponentProps {\n rootId: string;\n pageTitle?: string;\n convertedResult: ConvertResult | null;\n url?: string;\n}\n\nfunction RenderComponent({\n rootId,\n pageTitle,\n convertedResult,\n url,\n}: RenderComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const rootRef = useRef<Awaited<\n ReturnType<typeof unstable_createRoot>\n > | null>(null);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n const portal = createPortal(rootId);\n const root = unstable_createRoot(container, {\n portal,\n supportsUseChildren: true,\n } as any);\n rootRef.current = root;\n return () => {\n root.unmount();\n portal.remove();\n rootRef.current = null;\n };\n }, [rootId]);\n\n useEffect(() => {\n if (!convertedResult) {\n return;\n }\n const { brick, context, functions, templates } = convertedResult;\n rootRef.current?.render(brick, { context, functions, templates, url });\n }, [convertedResult, url]);\n\n return (\n <WrappedNarrowView size=\"large\" className={styles.container}>\n <WrappedMainView>\n <WrappedPageTitle\n slot=\"pageTitle\"\n pageTitle={pageTitle || t(K.UNTITLED)}\n />\n <div className={styles.main} ref={containerRef} data-root-id={rootId} />\n </WrappedMainView>\n </WrappedNarrowView>\n );\n}\n\nasync function parse(source: string): Promise<ParseResult> {\n const worker = await getRemoteTsxParserWorker();\n const result = await worker.parse(source);\n return result;\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {}\n// HELLO = \"HELLO\",\n\nconst en: Locale = {\n // HELLO: \"Hello\",\n};\n\nconst zh: Locale = {\n // HELLO: \"你好\",\n};\n\nexport const NS = \"bricks/ai-portal/action-buttons\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport { NS, locales } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrapperIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrapperButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nconst { defineElement, property, event } = createDecorators();\n\ninterface ActionItem {\n text: string;\n key: string;\n icon?: GeneralIconProps;\n hidden?: boolean;\n}\n\nexport interface ActionButtonsProps {\n items?: ActionItem[];\n activeKey?: string | null;\n}\n\n/**\n * 构件 `ai-portal.action-buttons`\n */\nexport\n@defineElement(\"ai-portal.action-buttons\", {\n styleTexts: [styleText],\n})\nclass ActionButtons extends ReactNextElement implements ActionButtonsProps {\n @property({\n attribute: false,\n })\n accessor items: ActionItem[] | undefined;\n\n @property()\n accessor activeKey: string | null | undefined;\n\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<ActionItem | null>;\n\n #handleChange = (action: ActionItem | null) => {\n this.activeKey = action ? action.key : null;\n this.#change.emit(action);\n };\n\n render() {\n return (\n <ActionButtonsComponent\n items={this.items}\n activeKey={this.activeKey}\n onChange={this.#handleChange}\n />\n );\n }\n}\n\ninterface ActionButtonsComponentProps extends ActionButtonsProps {\n onChange: (action: ActionItem | null) => void;\n}\n\nfunction ActionButtonsComponent({\n items,\n activeKey: propActiveKey,\n onChange,\n}: ActionButtonsComponentProps) {\n const [activeKey, setActiveKey] = useState<string | null>(\n propActiveKey ?? null\n );\n const initializedRef = useRef(false);\n\n useEffect(() => {\n setActiveKey(propActiveKey ?? null);\n }, [propActiveKey]);\n\n useEffect(() => {\n if (!initializedRef.current) {\n initializedRef.current = true;\n return;\n }\n onChange(\n activeKey\n ? (items?.find((item) => !item.hidden && item.key === activeKey) ??\n null)\n : null\n );\n }, [activeKey, items, onChange]);\n\n const filteredItems = useMemo(() => {\n return items?.filter(\n (item) => (!item.hidden && !activeKey) || item.key === activeKey\n );\n }, [items, activeKey]);\n\n return (\n <div className=\"button-container\">\n {filteredItems?.map((item) => {\n const { text, icon, key } = item;\n return (\n <WrapperButton\n key={key}\n className={`action${activeKey ? \" active\" : \"\"}`}\n themeVariant=\"elevo\"\n type=\"neutral\"\n onClick={() => {\n if (!activeKey) {\n setActiveKey(key);\n }\n }}\n >\n {icon ? <WrapperIcon className=\"icon\" {...icon} /> : null}\n {text}\n {activeKey ? (\n <WrapperIcon\n className=\"remove\"\n lib=\"lucide\"\n icon=\"x\"\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n setActiveKey(null);\n }}\n />\n ) : null}\n </WrapperButton>\n );\n })}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n UN_START_STATUS = \"UN_START_STATUS\",\n RUNNING_STATUS = \"RUNNING_STATUS\",\n COMPLETED_STATUS = \"COMPLETED_STATUS\",\n NEW_CHAT = \"NEW_CHAT\",\n}\n\nconst en: Locale = {\n UN_START_STATUS: \"Not Start\",\n RUNNING_STATUS: \"Running\",\n COMPLETED_STATUS: \"Completed\",\n NEW_CHAT: \"New chat\",\n};\n\nconst zh: Locale = {\n UN_START_STATUS: \"未开始\",\n RUNNING_STATUS: \"运行中\",\n COMPLETED_STATUS: \"已完成\",\n NEW_CHAT: \"新对话\",\n};\n\nexport const NS = \"bricks/ai-portal/goal-card-list\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","// istanbul ignore file: compatibility workaround\nimport type { HTMLAttributes } from \"react\";\n\nlet _supports: boolean | undefined;\n\nfunction supportsContentEditablePlaintextOnly(): boolean {\n if (typeof _supports !== \"boolean\") {\n const div = document.createElement(\"div\");\n div.setAttribute(\"contenteditable\", \"PLAINTEXT-ONLY\");\n _supports = div.contentEditable === \"plaintext-only\";\n }\n return _supports;\n}\n\nexport function getContentEditable(\n editable: boolean\n): HTMLAttributes<HTMLDivElement>[\"contentEditable\"] {\n return editable\n ? supportsContentEditablePlaintextOnly()\n ? \"plaintext-only\"\n : \"true\"\n : \"false\";\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping,\n} from \"@next-bricks/basic/dropdown-actions\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type { Action, SimpleAction } from \"@next-bricks/basic/actions\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"../i18n.js\";\nimport { getContentEditable } from \"../../shared/getContentEditable.js\";\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedDropdownActions = wrapBrick<\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping\n>(\"eo-dropdown-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nconst WrappedEasyopsAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nexport interface InputEventsMap {\n onValueChange: \"change\";\n}\n\nexport type GoalState = \"ready\" | \"working\" | \"completed\";\n\ninterface GoalMember {\n instanceId: string;\n}\n\nexport interface GoalItem {\n title: string;\n description?: string;\n state: GoalState;\n id: number;\n conversations?: number;\n owner?: GoalMember;\n users?: GoalMember[];\n instanceId: string;\n level: number;\n pending?: boolean;\n pendingParentId?: string;\n}\n\ninterface GoalCardItemProps {\n goalItem: GoalItem;\n idWidth?: number;\n cardStyle?: React.CSSProperties;\n isActive?: boolean;\n onTitleChange?: (newTitle: string) => void;\n onStatusChange?: (newStatus: GoalState) => void;\n onNewChat?: () => void;\n onClick?: () => void;\n onAppendChild?: () => void;\n onRevokeAppendChild?: () => void;\n}\n\nconst iconMap = {\n ready: \"uncheck-status\",\n working: \"active-status\",\n completed: \"check-status\",\n};\n\nconst iconActions: Action[] = [\n {\n key: \"ready\",\n icon: {\n icon: \"uncheck-status\",\n lib: \"easyops\",\n category: \"colored-common\",\n },\n text: t(K.UN_START_STATUS),\n },\n {\n key: \"working\",\n icon: {\n icon: \"active-status\",\n lib: \"easyops\",\n category: \"colored-common\",\n },\n text: t(K.RUNNING_STATUS),\n },\n {\n key: \"completed\",\n icon: {\n icon: \"check-status\",\n lib: \"easyops\",\n category: \"colored-common\",\n },\n text: t(K.COMPLETED_STATUS),\n },\n];\n\nexport function GoalCardItem({\n goalItem,\n idWidth,\n cardStyle,\n onStatusChange,\n onTitleChange,\n onClick,\n onNewChat,\n onAppendChild,\n onRevokeAppendChild,\n isActive,\n}: GoalCardItemProps) {\n const {\n state,\n id: serialNumber,\n title,\n conversations,\n owner,\n pending,\n } = goalItem;\n\n const handleStatusChange = (action: SimpleAction) => {\n onStatusChange?.(action.key as GoalState);\n };\n\n const compositionRef = useRef(false);\n\n const handleCompositionStart = useCallback(() => {\n compositionRef.current = true;\n }, []);\n\n const handleCompositionEnd = useCallback(() => {\n compositionRef.current = false;\n }, []);\n\n const [editing, setEditing] = useState(false);\n\n const handleFocus = useCallback(() => {\n setEditing(true);\n }, []);\n\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLSpanElement>) => {\n setEditing(false);\n const value = e.currentTarget.textContent;\n\n if (pending && !value?.trim()) {\n onRevokeAppendChild?.();\n return;\n }\n\n if (value !== null && title !== value) {\n onTitleChange?.(value);\n }\n },\n [pending, title, onRevokeAppendChild, onTitleChange]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLSpanElement>) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n if (e.key === \"Enter\") {\n e.preventDefault();\n e.currentTarget.blur();\n }\n },\n []\n );\n\n const titleRef = useRef<HTMLSpanElement>(null);\n\n useEffect(() => {\n if (pending) {\n titleRef.current?.focus();\n }\n }, [pending]);\n\n return (\n <div\n className={classNames(\n \"goal-item\",\n goalItem.state,\n { editing },\n { active: isActive }\n )}\n style={{\n paddingLeft: `${(goalItem.level + 1) * 24}px`,\n ...cardStyle,\n }}\n onClick={pending ? undefined : onClick}\n >\n <div className=\"start\">\n <WrappedDropdownActions\n actions={iconActions}\n disabled={pending}\n onActionClick={(e) => {\n handleStatusChange(e.detail);\n }}\n >\n <WrappedIcon\n className=\"icon\"\n lib=\"easyops\"\n category=\"colored-common\"\n icon={iconMap[state]}\n onClick={(e) => e.stopPropagation()}\n />\n </WrappedDropdownActions>\n\n <span className=\"serial-number\" style={{ width: idWidth }}>\n #{pending ? \"\" : serialNumber}\n </span>\n <span\n className=\"title\"\n ref={titleRef}\n onClick={(e) => e.stopPropagation()}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n contentEditable={getContentEditable(true)}\n suppressContentEditableWarning\n >\n {title}\n </span>\n </div>\n <div className=\"end\">\n <div className=\"info\">\n <div className=\"message\">\n <WrappedIcon lib=\"easyops\" category=\"common\" icon=\"message\" />\n <span className=\"count\">{conversations || 0}</span>\n </div>\n <WrappedEasyopsAvatar\n nameOrInstanceId={owner?.instanceId}\n size=\"small\"\n />\n </div>\n <div className=\"operation\" onClick={(e) => e.stopPropagation()}>\n {goalItem.level === 0 && (\n <WrappedButton\n className=\"append-child\"\n themeVariant=\"elevo\"\n type=\"neutral\"\n size=\"small\"\n onClick={onAppendChild}\n >\n <WrappedIcon lib=\"lucide\" icon=\"plus\" />\n </WrappedButton>\n )}\n {!pending && (\n <WrappedButton\n className=\"new-chat\"\n themeVariant=\"elevo\"\n type=\"neutral\"\n size=\"small\"\n onClick={onNewChat}\n >\n {t(K.NEW_CHAT)}\n </WrappedButton>\n )}\n </div>\n </div>\n </div>\n );\n}\n","import React, {\n useState,\n useEffect,\n forwardRef,\n createRef,\n useImperativeHandle,\n useMemo,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport CardItemStyleText from \"./CardItem/CardItem.shadow.css\";\nimport styleText from \"./styles.shadow.css\";\nimport { GoalCardItem, GoalItem, GoalState } from \"./CardItem/CardItem.js\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { uniqueId } from \"lodash\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface GoalCardListProps {\n goalList?: GoalItem[];\n cardStyle?: React.CSSProperties;\n activeKey?: string;\n}\n\nconst GoalCardListComponent = forwardRef(LegacyGoalCardListComponent);\n\n/**\n * 构件 `ai-portal.goal-card-list`\n */\nexport\n@defineElement(\"ai-portal.goal-card-list\", {\n styleTexts: [styleText, CardItemStyleText],\n})\nclass GoalCardList extends ReactNextElement implements GoalCardListProps {\n @property({\n attribute: false,\n })\n accessor goalList: GoalItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor cardStyle: React.CSSProperties | undefined;\n\n @property()\n accessor activeKey: string | undefined;\n\n @event({ type: \"item.click\" })\n accessor #itemClickEvent!: EventEmitter<GoalItem>;\n #handleItemClick = (item: GoalItem) => {\n this.#itemClickEvent.emit(item);\n };\n\n @event({ type: \"item.status.change\" })\n accessor #itemStatusChangeEvent!: EventEmitter<GoalItem>;\n #handleItemStatusChange = (item: GoalItem) => {\n this.#itemStatusChangeEvent.emit(item);\n };\n\n @event({ type: \"item.title.change\" })\n accessor #itemTitleChangeEvent!: EventEmitter<GoalItem>;\n #handleTitleChange = (item: GoalItem) => {\n this.#itemTitleChangeEvent.emit(item);\n };\n\n @event({ type: \"item.new.chat\" })\n accessor #itemNewChatEvent!: EventEmitter<GoalItem>;\n #handleNewChat = (item: GoalItem) => {\n this.#itemNewChatEvent.emit(item);\n };\n\n #ref = createRef<GoalListRef>();\n\n @method()\n appendChildDone(pendingId: string, newItem: GoalItem) {\n this.#ref.current?.appendChildDone(pendingId, newItem);\n }\n\n render() {\n return (\n <GoalCardListComponent\n ref={this.#ref}\n goalList={this.goalList}\n cardStyle={this.cardStyle}\n onTitleChange={this.#handleTitleChange}\n onStatusChange={this.#handleItemStatusChange}\n onItemClick={this.#handleItemClick}\n onNewChat={this.#handleNewChat}\n activeKey={this.activeKey}\n />\n );\n }\n}\n\ninterface GoalCardListComponentProps extends GoalCardListProps {\n onTitleChange?: (item: GoalItem) => void;\n onStatusChange?: (item: GoalItem) => void;\n onItemClick?: (item: GoalItem) => void;\n onNewChat?: (item: GoalItem) => void;\n}\n\ninterface GoalListRef {\n appendChildDone: (pendingId: string, newItem: GoalItem) => void;\n}\n\nfunction LegacyGoalCardListComponent(\n {\n goalList: _goalList,\n cardStyle,\n onTitleChange,\n onStatusChange,\n onItemClick,\n onNewChat,\n activeKey,\n }: GoalCardListComponentProps,\n ref: React.Ref<GoalListRef>\n) {\n const [goalList, setGoalList] = useState(_goalList);\n\n useEffect(() => {\n setGoalList(_goalList);\n }, [_goalList]);\n\n const updateGoalItem = <T extends keyof GoalItem>(\n item: GoalItem,\n field: T,\n value: GoalItem[T],\n callback?: (updatedItem: GoalItem) => void\n ) => {\n const updatedItem = {\n ...item,\n [field]: value,\n };\n\n setGoalList(\n goalList?.map((goalItem) =>\n goalItem.instanceId === updatedItem.instanceId ? updatedItem : goalItem\n )\n );\n\n callback?.(updatedItem);\n };\n\n const handleTitleChange = (newTitle: string, item: GoalItem) => {\n updateGoalItem(item, \"title\", newTitle, onTitleChange);\n };\n\n const handleStatusChange = (newStatus: GoalState, item: GoalItem) => {\n updateGoalItem(item, \"state\", newStatus, onStatusChange);\n };\n\n const handleAppendChild = (item: GoalItem) => {\n const newChild: GoalItem = {\n instanceId:\n process.env.NODE_ENV === \"test\"\n ? \"test-pending-id\"\n : uniqueId(\"pending-\"),\n pending: true,\n id: 0,\n title: \"\",\n state: \"ready\",\n level: 1,\n pendingParentId: item.instanceId,\n };\n setGoalList((prevList) => {\n const index =\n prevList?.findIndex((goal) => goal.instanceId === item.instanceId) ??\n -1;\n if (index === -1) return prevList;\n const offsetIndex =\n prevList!.slice(index + 1).findIndex((goal) => goal.level === 0) + 1;\n if (offsetIndex === 0) {\n return [...prevList!, newChild];\n }\n return [\n ...prevList!.slice(0, index + offsetIndex),\n newChild,\n ...prevList!.slice(index + offsetIndex),\n ];\n });\n };\n\n useImperativeHandle(\n ref,\n () => ({\n appendChildDone: (pendingId: string, newItem: GoalItem) => {\n setGoalList((prevList) =>\n prevList?.map((goal) =>\n goal.instanceId === pendingId\n ? { ...newItem, level: goal.level }\n : goal\n )\n );\n },\n }),\n []\n );\n\n const idWidth = useMemo(() => {\n const maxId =\n goalList?.reduce((max, item) => Math.max(max, item.id), 0) ?? 0;\n return 10 * (maxId.toString().length + 1);\n }, [goalList]);\n\n if (!goalList) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <div className=\"goal-container\">\n {goalList?.map((item) => (\n <GoalCardItem\n key={item.instanceId}\n isActive={activeKey === item.instanceId}\n goalItem={item}\n idWidth={idWidth}\n cardStyle={cardStyle}\n onTitleChange={(v) => handleTitleChange(v, item)}\n onStatusChange={(v) => handleStatusChange(v, item)}\n onNewChat={() => onNewChat?.(item)}\n onClick={() => onItemClick?.(item)}\n onAppendChild={() => handleAppendChild(item)}\n onRevokeAppendChild={() => {\n setGoalList((prevList) =>\n prevList?.filter((goal) => goal.instanceId !== item.instanceId)\n );\n }}\n />\n ))}\n </div>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n PROJECT_OVERALL = \"PROJECT_OVERALL\",\n}\n\nconst en: Locale = {\n PROJECT_OVERALL: \"Project overall\",\n};\n\nconst zh: Locale = {\n PROJECT_OVERALL: \"项目整体\",\n};\n\nexport const NS = \"bricks/ai-portal/project-conversations\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n, i18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type {\n ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ProjectConversationsProps {\n list?: Conversation[];\n urlTemplate?: string;\n actions?: ActionType[];\n goals?: Goal[];\n}\n\nexport interface Conversation {\n conversationId: string;\n title: string;\n startTime: number;\n description?: string;\n goalInstanceId?: string;\n username?: string;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: Conversation;\n}\n\nexport interface Goal {\n instanceId: string;\n title: string;\n}\n\n/**\n * 构件 `ai-portal.project-conversations`\n */\nexport\n@defineElement(\"ai-portal.project-conversations\", {\n styleTexts: [styleText],\n})\nclass ProjectConversations\n extends ReactNextElement\n implements ProjectConversationsProps\n{\n @property({ attribute: false })\n accessor list: Conversation[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @property({ attribute: false })\n accessor goals: Goal[] | undefined;\n\n @event({ type: \"goal.click\" })\n accessor #goalClick!: EventEmitter<Conversation>;\n\n #handleGoalClick = (conversation: Conversation) => {\n this.#goalClick.emit(conversation);\n };\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n render() {\n return (\n <ProjectConversationsComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n actions={this.actions}\n goals={this.goals}\n onGoalClick={this.#handleGoalClick}\n onActionClick={this.#handleActionClick}\n />\n );\n }\n}\n\ninterface ProjectConversationsComponentProps extends ProjectConversationsProps {\n onGoalClick: (conversation: Conversation) => void;\n onActionClick: (detail: ActionClickDetail) => void;\n}\n\nfunction ProjectConversationsComponent({\n list,\n urlTemplate,\n actions,\n goals,\n onGoalClick,\n onActionClick,\n}: ProjectConversationsComponentProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list.map((item) => (\n <li className=\"item\" key={item.conversationId}>\n <ConversationLink\n conversation={item}\n urlTemplate={urlTemplate}\n actions={actions}\n goals={goals}\n onGoalClick={onGoalClick}\n onActionClick={onActionClick}\n />\n </li>\n ))}\n </ul>\n );\n}\n\ninterface ConversationLinkProps\n extends Pick<\n ProjectConversationsComponentProps,\n \"urlTemplate\" | \"actions\" | \"goals\" | \"onGoalClick\" | \"onActionClick\"\n > {\n conversation: Conversation;\n}\n\nfunction ConversationLink({\n conversation,\n urlTemplate,\n actions,\n goals,\n onGoalClick,\n onActionClick,\n}: ConversationLinkProps) {\n const goalRef = useRef<HTMLDivElement>(null);\n const language = i18n.language.split(\"-\")[0];\n\n // <eo-link> handles click manually,\n // so we need to stop propagation and prevent default manually.\n useEffect(() => {\n const el = goalRef.current;\n if (!el) return;\n const handleClick = (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n onGoalClick(conversation);\n };\n el.addEventListener(\"click\", handleClick);\n return () => {\n el.removeEventListener(\"click\", handleClick);\n };\n }, [conversation, onGoalClick]);\n\n const [actionsVisible, setActionsVisible] = useState(false);\n\n return (\n <WrappedLink\n className={classNames(\"link\", { \"actions-active\": actionsVisible })}\n url={parseTemplate(urlTemplate, conversation)}\n >\n <div className=\"main\">\n <div className=\"header\">\n <WrappedIcon\n className=\"icon\"\n lib=\"easyops\"\n category=\"common\"\n icon=\"clock\"\n />\n <div className=\"title\">{conversation.title}</div>\n </div>\n {conversation.description && (\n <div className=\"description\">{conversation.description}</div>\n )}\n </div>\n {goals && (\n <div\n className={classNames(\"goal\", {\n global: !conversation.goalInstanceId,\n })}\n ref={goalRef}\n >\n {conversation.goalInstanceId\n ? goals.find((g) => g.instanceId === conversation.goalInstanceId)\n ?.title\n : t(K.PROJECT_OVERALL)}\n </div>\n )}\n <WrappedAvatar\n className=\"avatar\"\n size=\"small\"\n nameOrInstanceId={conversation.username}\n />\n <div className={`operations lang-${language}`}>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item: conversation });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail);\n }}\n />\n <div\n className=\"time\"\n title={\n humanizeTime(\n conversation.startTime * 1000,\n HumanizeTimeFormat.full\n )!\n }\n >\n {humanizeTime(\n conversation.startTime * 1000,\n HumanizeTimeFormat.relative\n )}\n </div>\n </div>\n </WrappedLink>\n );\n}\n","import React, { useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\n// import { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport classNames from \"classnames\";\n// import { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\n\n// initializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ProjectKnowledgesProps {\n list?: Knowledge[];\n urlTemplate?: string;\n actions?: ActionType[];\n}\n\nexport interface Knowledge {\n instanceId: string;\n name: string;\n description?: string;\n time: number;\n user?: string;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: Knowledge;\n}\n\n/**\n * 构件 `ai-portal.project-knowledges`\n */\nexport\n@defineElement(\"ai-portal.project-knowledges\", {\n styleTexts: [styleText],\n})\nclass ProjectKnowledges\n extends ReactNextElement\n implements ProjectKnowledgesProps\n{\n @property({ attribute: false })\n accessor list: Knowledge[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n @event({ type: \"item.click\" })\n accessor #itemClick!: EventEmitter<Knowledge>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n #handleItemClick = (item: Knowledge) => {\n this.#itemClick.emit(item);\n };\n\n render() {\n return (\n <ProjectKnowledgesComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n actions={this.actions}\n onActionClick={this.#handleActionClick}\n onItemClick={this.#handleItemClick}\n />\n );\n }\n}\n\ninterface ProjectKnowledgesComponentProps extends ProjectKnowledgesProps {\n onActionClick: (detail: ActionClickDetail) => void;\n onItemClick?: (item: Knowledge) => void;\n}\n\nfunction ProjectKnowledgesComponent({\n list,\n urlTemplate,\n actions,\n onActionClick,\n onItemClick,\n}: ProjectKnowledgesComponentProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list?.map((item) => (\n <li className=\"item\" key={item.instanceId}>\n <KnowledgeLink\n knowledge={item}\n urlTemplate={urlTemplate}\n actions={actions}\n onActionClick={onActionClick}\n onItemClick={onItemClick}\n />\n </li>\n ))}\n </ul>\n );\n}\n\ninterface KnowledgeLinkProps\n extends Pick<\n ProjectKnowledgesComponentProps,\n \"urlTemplate\" | \"actions\" | \"onActionClick\" | \"onItemClick\"\n > {\n knowledge: Knowledge;\n}\n\nfunction KnowledgeLink({\n knowledge,\n urlTemplate,\n actions,\n onActionClick,\n onItemClick,\n}: KnowledgeLinkProps) {\n const [actionsVisible, setActionsVisible] = useState(false);\n\n return (\n <WrappedLink\n className={classNames(\"link\", { \"actions-active\": actionsVisible })}\n url={parseTemplate(urlTemplate, knowledge)}\n onClick={() => onItemClick?.(knowledge)}\n >\n <div className=\"main\">\n <div className=\"header\">\n <WrappedIcon\n className=\"icon\"\n lib=\"easyops\"\n icon=\"lightbulb\"\n category=\"common\"\n />\n <span className=\"title\">{knowledge.name}</span>\n <WrappedIcon className=\"attachment\" lib=\"lucide\" icon=\"paperclip\" />\n </div>\n {knowledge.description && (\n <div className=\"description\">{knowledge.description}</div>\n )}\n </div>\n <div className=\"time\">\n {humanizeTime(knowledge.time * 1000, HumanizeTimeFormat.relative)}\n </div>\n <div className=\"operations\">\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item: knowledge });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail);\n }}\n />\n <WrappedAvatar\n className=\"avatar\"\n size=\"small\"\n nameOrInstanceId={knowledge.user}\n />\n </div>\n </WrappedLink>\n );\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n STARTED_A_CHAT = \"STARTED_A_CHAT\",\n CREATED_THIS_GOAL = \"CREATED_THIS_GOAL\",\n CHANGED_THE_GOAL_TITLE = \"CHANGED_THE_GOAL_TITLE\",\n CHANGED_THE_GOAL_DESCRIPTION = \"CHANGED_THE_GOAL_DESCRIPTION\",\n CHANGED_THE_GOAL = \"CHANGED_THE_GOAL\",\n DELETED_THIS_GOAL = \"DELETED_THIS_GOAL\",\n DECOMPOSED_THIS_GOAL = \"DECOMPOSED_THIS_GOAL\",\n SET_OWNER = \"SET_OWNER\",\n REMOVED_GOAL_PARTICIPANTS = \"REMOVED_GOAL_PARTICIPANTS\",\n ADDED_GOAL_PARTICIPANTS = \"ADDED_GOAL_PARTICIPANTS\",\n COMMENTED = \"COMMENTED\",\n COMMA = \"COMMA\",\n SEMICOLON = \"SEMICOLON\",\n}\n\nconst en: Locale = {\n STARTED_A_CHAT: \"started a chat\",\n CREATED_THIS_GOAL: \"created this goal\",\n CHANGED_THE_GOAL_TITLE: 'changed the goal title to \"{{ title }}\"',\n CHANGED_THE_GOAL_DESCRIPTION:\n 'changed the goal description to \"{{ description }}\"',\n CHANGED_THE_GOAL: \"changed the goal\",\n DELETED_THIS_GOAL: \"deleted this goal\",\n DECOMPOSED_THIS_GOAL: \"decomposed this goal to {{ count }} sub-goal: \",\n DECOMPOSED_THIS_GOAL_plural:\n \"decomposed this goal to {{ count }} sub-goals: \",\n SET_OWNER: \"set {{ user }} as the owner\",\n REMOVED_GOAL_PARTICIPANTS: \"removed a goal participant: \",\n REMOVED_GOAL_PARTICIPANTS_plural: \"removed {{ count }} goal participants: \",\n ADDED_GOAL_PARTICIPANTS: \"added a goal participant: \",\n ADDED_GOAL_PARTICIPANTS_plural: \"added {{ count }} goal participants: \",\n COMMENTED: \"commented\",\n COMMA: \", \",\n SEMICOLON: \"; \",\n};\n\nconst zh: Locale = {\n STARTED_A_CHAT: \"发起了对话\",\n CREATED_THIS_GOAL: \"创建了此目标\",\n CHANGED_THE_GOAL_TITLE: \"修改目标标题为 “{{ title }}”\",\n CHANGED_THE_GOAL_DESCRIPTION: \"修改目标描述为 “{{ description }}”\",\n CHANGED_THE_GOAL: \"修改了此目标\",\n DELETED_THIS_GOAL: \"删除了此目标\",\n DECOMPOSED_THIS_GOAL: \"将此目标分解为 {{ count }} 个子目标:\",\n DECOMPOSED_THIS_GOAL_plural: \"将此目标分解为 {{ count }} 个子目标:\",\n SET_OWNER: \"设定负责人为 {{ user }}\",\n REMOVED_GOAL_PARTICIPANTS: \"移除了目标参与成员:\",\n ADDED_GOAL_PARTICIPANTS: \"添加了目标参与成员:\",\n COMMENTED: \"评论\",\n COMMA: \",\",\n SEMICOLON: \";\",\n};\n\nexport const NS = \"bricks/ai-portal/activity-timeline\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\nimport type { Activity, ActivityOfAlterUser } from \"./interfaces.js\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst { defineElement, property } = createDecorators();\n\nexport interface ActivityTimelineProps {\n list?: Activity[];\n chatUrlTemplate?: string;\n}\n\n/**\n * 构件 `ai-portal.activity-timeline`\n */\nexport\n@defineElement(\"ai-portal.activity-timeline\", {\n styleTexts: [styleText],\n})\nclass ActivityTimeline\n extends ReactNextElement\n implements ActivityTimelineProps\n{\n @property({ attribute: false })\n accessor list: Activity[] | undefined;\n\n @property()\n accessor chatUrlTemplate: string | undefined;\n\n render() {\n return (\n <ActivityTimelineComponent\n list={this.list}\n chatUrlTemplate={this.chatUrlTemplate}\n />\n );\n }\n}\n\nfunction ActivityTimelineComponent({\n list,\n chatUrlTemplate,\n}: ActivityTimelineProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list.map((activity, index) => (\n <li className=\"activity\" key={index}>\n <div className=\"guide-line\" />\n <div className=\"main\">\n <WrappedAvatar\n className=\"avatar\"\n nameOrInstanceId={activity.user_id}\n size=\"xs\"\n />\n <span className=\"action\">\n {activity.user_name}\n \n {activity.action_type === \"start_conversation\" ? (\n <>\n <span>{t(K.STARTED_A_CHAT)}</span>\n <WrappedLink\n className=\"conversation\"\n url={parseTemplate(chatUrlTemplate, activity)}\n target=\"_blank\"\n >\n {activity.metadata?.conversation_title}\n </WrappedLink>\n <WrappedIcon\n className=\"external-link-icon\"\n lib=\"lucide\"\n icon=\"external-link\"\n />\n </>\n ) : activity.action_type === \"create_goal\" ? (\n t(K.CREATED_THIS_GOAL)\n ) : activity.action_type === \"edit_goal\" ? (\n activity.metadata.after.title ? (\n t(K.CHANGED_THE_GOAL_TITLE, activity.metadata.after)\n ) : activity.metadata.after.description ? (\n t(K.CHANGED_THE_GOAL_DESCRIPTION, activity.metadata.after)\n ) : (\n t(K.CHANGED_THE_GOAL)\n )\n ) : activity.action_type === \"delete_goal\" ? (\n t(K.DELETED_THIS_GOAL)\n ) : activity.action_type === \"decompose_goals\" ? (\n `${t(K.DECOMPOSED_THIS_GOAL, {\n count: activity.metadata.sub_goals_count,\n })}${activity.metadata.sub_goals\n .map((g) => g.title)\n .join(t(K.COMMA))}`\n ) : activity.action_type === \"alter_owner\" ? (\n t(K.SET_OWNER, {\n user: activity.metadata.after.owner.user_name,\n })\n ) : activity.action_type === \"alter_user\" ? (\n getAlterPARTICIPANTsActivityDescription(activity)\n ) : activity.action_type === \"add_comment\" ? (\n t(K.COMMENTED)\n ) : (\n // Defense for future action types\n (activity as { action_type: string }).action_type\n )}\n </span>\n <span\n className=\"time\"\n title={humanizeTime(activity.time, HumanizeTimeFormat.full)!}\n >\n {humanizeTime(activity.time, HumanizeTimeFormat.relative)}\n </span>\n </div>\n {activity.action_type === \"add_comment\" && (\n <div className=\"comment\">{activity.metadata?.comment_content}</div>\n )}\n </li>\n ))}\n </ul>\n );\n}\n\nfunction getAlterPARTICIPANTsActivityDescription(\n activity: ActivityOfAlterUser\n) {\n const removed: string[] = [];\n const added: string[] = [];\n const beforeUserIds = new Set(\n activity.metadata.before.users.map((user) => user.user_name)\n );\n for (const user of activity.metadata.after.users) {\n if (!beforeUserIds.has(user.user_name)) {\n added.push(user.user_name);\n }\n }\n const afterUserIds = new Set(\n activity.metadata.after.users.map((user) => user.user_name)\n );\n for (const user of activity.metadata.before.users) {\n if (!afterUserIds.has(user.user_name)) {\n removed.push(user.user_name);\n }\n }\n\n const descriptions: string[] = [];\n if (removed.length > 0) {\n descriptions.push(\n t(K.REMOVED_GOAL_PARTICIPANTS, { count: removed.length }) +\n removed.join(t(K.COMMA))\n );\n }\n if (added.length > 0) {\n descriptions.push(\n t(K.ADDED_GOAL_PARTICIPANTS, { count: added.length }) +\n added.join(t(K.COMMA))\n );\n }\n\n return descriptions.join(t(K.SEMICOLON));\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n TERMINATE_THE_TASK = \"TERMINATE_THE_TASK\",\n}\n\nconst en: Locale = {\n TERMINATE_THE_TASK: \"Terminate the task\",\n};\n\nconst zh: Locale = {\n TERMINATE_THE_TASK: \"终止任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-input\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport classNames from \"classnames\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst ICON_LOADING: GeneralIconProps = {\n lib: \"antd\",\n icon: \"loading-3-quarters\",\n spinning: true,\n};\n\nconst ICON_STOP: GeneralIconProps = {\n lib: \"fa\",\n prefix: \"far\",\n icon: \"circle-stop\",\n};\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ChatInputProps {\n placeholder?: string;\n autoFocus?: boolean;\n submitDisabled?: boolean;\n supportsTerminate?: boolean;\n terminating?: boolean;\n}\n\nexport interface ChatInputEvents {\n \"message.submit\": CustomEvent<string>;\n terminate: Event;\n}\n\nexport interface ChatInputMapEvents {\n onMessageSubmit: \"message.submit\";\n onTerminate: \"terminate\";\n}\n\n/**\n * 构件 `ai-portal.chat-input`\n */\nexport\n@defineElement(\"ai-portal.chat-input\", {\n styleTexts: [styleText],\n shadowOptions: {\n delegatesFocus: true,\n },\n})\nclass ChatInput extends ReactNextElement implements ChatInputProps {\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @property({ type: Boolean })\n accessor submitDisabled: boolean | undefined;\n\n @property({ type: Boolean })\n accessor supportsTerminate: boolean | undefined;\n\n @property({ type: Boolean })\n accessor terminating: boolean | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @event({ type: \"terminate\" })\n accessor #terminate!: EventEmitter<void>;\n\n #handleTerminate = () => {\n this.#terminate.emit();\n };\n\n render() {\n return (\n <ChatInputComponent\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n submitDisabled={this.submitDisabled}\n supportsTerminate={this.supportsTerminate}\n terminating={this.terminating}\n onSubmit={this.#handleMessageSubmit}\n onTerminate={this.#handleTerminate}\n />\n );\n }\n}\n\ninterface ChatInputComponentProps extends ChatInputProps {\n onSubmit: (value: string) => void;\n onTerminate: () => void;\n}\n\nfunction ChatInputComponent({\n placeholder,\n autoFocus,\n submitDisabled,\n supportsTerminate,\n terminating,\n onSubmit,\n onTerminate,\n}: ChatInputComponentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n const [wrap, setWrap] = useState(false);\n\n useEffect(() => {\n if (autoFocus && !submitDisabled) {\n textareaRef.current?.focus();\n }\n }, [autoFocus, submitDisabled]);\n\n const onBeforeSubmit = useCallback(\n (value: string) => {\n if (submitDisabled || !value) {\n return;\n }\n\n onSubmit(value);\n valueRef.current = \"\";\n setValue(\"\");\n },\n [submitDisabled, onSubmit]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n onBeforeSubmit(e.currentTarget.value);\n },\n [onBeforeSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onBeforeSubmit(valueRef.current);\n }, [onBeforeSubmit]);\n\n // istanbul ignore next\n useEffect(() => {\n const container = containerRef?.current;\n if (!container) {\n return;\n }\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n const currentBlockSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].blockSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .blockSize\n : entry.contentRect.height;\n if (currentBlockSize > 52) {\n setWrap(true);\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (!value) {\n setWrap(false);\n }\n }, [value]);\n\n const handleContainerClick = useCallback((e: React.MouseEvent) => {\n for (const item of e.nativeEvent.composedPath()) {\n if (\n item instanceof HTMLTextAreaElement ||\n item instanceof HTMLButtonElement\n ) {\n return;\n }\n }\n textareaRef.current?.focus();\n }, []);\n\n return (\n <div className=\"container\" onClick={handleContainerClick}>\n <div className={classNames(\"box\", { wrap })}>\n <div className=\"input\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={1}\n maxRows={4}\n borderSize={0}\n paddingSize={16}\n autoResize\n placeholder={placeholder}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n </div>\n <div className=\"toolbar\">\n {!submitDisabled || !supportsTerminate ? (\n <button\n className=\"btn-send\"\n disabled={submitDisabled || !value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" icon=\"arrow-up\" />\n </button>\n ) : (\n <>\n {terminating ? (\n <WrappedIconButton icon={ICON_LOADING} disabled />\n ) : (\n <WrappedIconButton\n icon={ICON_STOP}\n tooltip={t(K.TERMINATE_THE_TASK)}\n onClick={onTerminate}\n />\n )}\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport Logo from \"./images/logo@2x.png\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.elevo-logo`\n */\nexport\n@defineElement(\"ai-portal.elevo-logo\", {\n styleTexts: [styleText],\n})\nclass ElevoLogo extends ReactNextElement {\n render() {\n return (\n <img className=\"logo\" alt=\"Elevo\" src={Logo} width={95} height={28} />\n );\n }\n}\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n WATCH_REPLAY = \"WATCH_REPLAY\",\n}\n\nconst en: Locale = {\n [K.WATCH_REPLAY]: \"Watch replay\",\n};\n\nconst zh: Locale = {\n [K.WATCH_REPLAY]: \"查看回放\",\n};\n\nexport const NS = \"bricks/ai-portal/show-case\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst bgClasses = [\"purple\", \"green\", \"pink\"];\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst { defineElement, property } = createDecorators();\n\nexport interface ShowCaseProps {\n caseTitle?: string;\n summary?: string;\n url?: string;\n}\n\n/**\n * 构件 `ai-portal.show-case`\n */\nexport\n@defineElement(\"ai-portal.show-case\", {\n styleTexts: [styleText],\n})\nclass ShowCase extends ReactNextElement implements ShowCaseProps {\n @property()\n accessor caseTitle: string | undefined;\n\n @property()\n accessor summary: string | undefined;\n\n @property()\n accessor url: string | undefined;\n\n render() {\n return (\n <ShowCaseComponent\n caseTitle={this.caseTitle}\n summary={this.summary}\n url={this.url}\n />\n );\n }\n}\n\nfunction ShowCaseComponent({ caseTitle, summary, url }: ShowCaseProps) {\n return (\n <WrappedLink\n className={`link ${bgClasses[Math.floor(Math.random() * bgClasses.length)]}`}\n url={url}\n >\n <span className=\"title\">{caseTitle}</span>\n <span className=\"description\">{summary}</span>\n <span className=\"mask\" />\n <span className=\"button\">\n <WrappedIcon lib=\"easyops\" icon=\"replay\" />\n {t(K.WATCH_REPLAY)}\n </span>\n </WrappedLink>\n );\n}\n","import { http } from \"@next-core/http\";\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport type { ToolInfo } from \"@next-shared/tsx-parser\";\n\nexport async function callTool(\n tool: ToolInfo,\n params: Record<string, unknown>\n): Promise<unknown> {\n const response = await http.post<{ data: unknown }>(\n `api/gateway/logic.llm.aiops_service/api/v1/elevo/conversation/${\n tool.conversationId\n }/step/${tool.stepId}/view`,\n {\n params,\n }\n );\n\n return response.data;\n}\n\ncustomElements.define(\"ai-portal.call-tool\", createProviderClass(callTool));\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `ai-portal\\\\.preview-container{display:block;background:rgba(247,248,250,1)}.loading--uD2jY9vX{position:absolute;top:50%;left:50%;font-size:48px;color:var(--palette-gray-5);margin:0 -24px}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"loading\": `loading--uD2jY9vX`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.link{display:block}.link::part(link){display:flex;align-items:center;gap:16px;padding:12px 24px;color:#262626;background:rgba(255,255,255,0.6);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.link.actions-active::part(link),\n.link::part(link):hover{background:rgba(0,0,0,0.05);-webkit-backdrop-filter:none;backdrop-filter:none}.item:not(:last-child){margin-bottom:4px}.icon{font-size:18px;margin-right:8px}.title{font-weight:500;font-size:16px}.title,\n.description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goal{background:#f0fff8;border-radius:4px;font-weight:500;font-size:12px;color:#1dc897;line-height:20px;padding:2px 8px;white-space:nowrap}.goal.global{background:#e6f4ff;color:#1a7aff}.header{display:flex;align-items:center}.description{color:#595959;margin-top:6px;padding-left:28px;line-height:20px}.time{color:rgba(0,0,0,0.45);white-space:nowrap}.main{flex:1;min-width:0}.operations{display:flex;align-items:center;justify-content:right;width:100px}.operations.lang-zh{width:64px}.link.actions-active .time,\n.link:hover .time,\n.link:not(:hover):not(.actions-active) .actions{display:none}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;padding:24px 54px 72px}:host([hidden]){display:none}:host::before{content:\"\";position:fixed;z-index:-1;top:0;right:0;bottom:0;left:0;background-color:#f1f1f1;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}@media (max-width: 719px){:host{padding-left:24px;padding-right:24px}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../page-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto}h1{font-weight:500;margin:0;font-size:20px;line-height:28px;margin-bottom:17px}.list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.link{display:block;height:100%}.link::part(link){display:block;height:100%;color:#262626;background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px;box-sizing:border-box}.link:not(.clickable)::part(link){cursor:auto}.clickable::part(link):hover{box-shadow:0px 4px 10px 0px rgba(0,0,0,0.1)}.heading{display:flex;align-items:center}.icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff;border-radius:12px;border:1px solid #e8e9ec;font-size:32px;color:#595959;margin-right:16px}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clickable::part(link):hover .title{color:var(--elevo-color-brand)}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:6px;margin:16px 0 -3px}.tag{display:block;background:rgba(0,0,0,0.04);border-radius:4px;font-size:12px;line-height:22px;padding:0 7px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.container{background-color:#fff;border:2px solid #7891ff;border-radius:12px;box-shadow:0px 9px 28px 8px rgba(0,0,0,0.05),0px 6px 16px 0px rgba(0,0,0,0.08),0px 3px 6px -4px rgba(0,0,0,0.12);cursor:text}.container:not(:has(textarea:focus)){background-color:rgba(255,255,255,0.5);border-color:#99c4ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.box{display:flex;flex-wrap:wrap;border-radius:10px;padding:8px}.input{min-width:0;flex:1}.wrap .input{flex-basis:100%}.input textarea{display:block;width:100%;padding:8px;font:inherit;font-size:16px;line-height:24px;color:var(--antd-input-color);border:none;background:none;height:24px;color:#262626}.input textarea::placeholder{color:#bfbfbf}.toolbar{padding:5px 0 5px 8px;margin-left:auto;display:flex;align-items:center;gap:2px}.btn-send:focus,\ntextarea:focus{outline:none}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff}.btn-send:disabled{background:rgba(0,0,0,0.15)}.btn-send:not(:disabled){cursor:pointer}.btn-send:not(:disabled):hover{background:#5166ff}.btn-send:not(:disabled):active{background:#1e33cc}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../page-container/images/background.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}:host([with-container]){position:relative;width:100%;height:100%;overflow:hidden;background-color:rgb(205,206,207);background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed;color:#262626;padding:48px 24px;overflow-y:auto}*{box-sizing:border-box}.container{max-width:1400px;margin:0 auto;margin-bottom:17px}h1,\nh2{font-weight:500;margin:0}h1{font-size:20px;line-height:28px;margin-bottom:17px}h2{font-size:16px;line-height:22px}.groups,\n.list{list-style:none;margin:0;padding:0}.groups{margin-top:27px}.group + .group{margin-top:32px}.list{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.link{display:block;height:100%}.link::part(link){display:block;height:100%;color:#262626;background:rgba(255,255,255,0.9);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.08);border-radius:12px;padding:20px 26px;box-sizing:border-box}.link:not(.clickable)::part(link){cursor:auto}.clickable::part(link):hover{box-shadow:0px 4px 10px 0px rgba(0,0,0,0.1)}.heading{display:flex;align-items:center}.avatar{width:48px;height:48px;border-radius:12px;margin-right:16px;background-color:#d5d6e6;display:flex;align-items:center;justify-content:center;font-size:24px}.avatar img{width:100%;height:100%}.title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clickable::part(link):hover .title{color:var(--elevo-color-brand)}.description{margin-top:13px;font-size:13px;color:rgba(0,0,0,0.45);line-height:18px;height:54px;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","initializeI18n","NS","locales","defineElement","property","event","method","createDecorators","ForwardedCruiseCanvasComponent","forwardRef","CruiseCanvasComponent","_CruiseCanvas","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_CruiseCanvas_brand","WeakSet","_onShare","_S","_onTerminate","_T","_onSubmitFeedback","_U","_onFeedbackOnView","_V","_onSwitchToChat","_W","_onDetailChange","_ref","CruiseCanvas","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_conversationId","_init_extra_conversationId","_init_initialRequest","_init_extra_initialRequest","_init_replay","_init_extra_replay","_init_replayDelay","_init_extra_replayDelay","_init_supports","_init_extra_supports","_init_showHiddenJobs","_init_extra_showHiddenJobs","_init_showHumanActions","_init_extra_showHumanActions","_init_showFeedback","_init_extra_showFeedback","_init_showFeedbackAfterFailed","_init_extra_showFeedbackAfterFailed","_init_showFeedbackOnView","_init_extra_showFeedbackOnView","_init_showUiSwitch","_init_extra_showUiSwitch","_init_hideMermaid","_init_extra_hideMermaid","_init_showJsxEditor","_init_extra_showJsxEditor","_init_previewUrlTemplate","_init_extra_previewUrlTemplate","_init_showCases","_init_extra_showCases","_init_exampleProjects","_init_extra_exampleProjects","_init_tryItOutUrl","_init_extra_tryItOutUrl","_init_shareEvent","_init_extra_shareEvent","_classPrivateGetter","this","_get_shareEvent","emit","_init_terminateEvent","_init_extra_terminateEvent","_get_terminateEvent","_init_feedbackSubmitEvent","_init_extra_feedbackSubmitEvent","detail","_get_feedbackSubmitEvent","_init_feedbackOnViewEvent","_init_extra_feedbackOnViewEvent","viewId","_get_feedbackOnViewEvent","_init_switch","_init_extra_switch","_get_switch","_init_detailChange","_init_extra_detailChange","_get_detailChange","createRef","conversationId","_classPrivateFieldGet","v","_classPrivateFieldSet","initialRequest","replay","replayDelay","supports","showHiddenJobs","showHumanActions","showFeedback","showFeedbackAfterFailed","showFeedbackOnView","showUiSwitch","hideMermaid","showJsxEditor","previewUrlTemplate","showCases","exampleProjects","tryItOutUrl","resumed","_classPrivateFieldGet2","_classPrivateFieldGet3","current","call","feedbackSubmitDone","_classPrivateFieldGet4","feedbackSubmitFailed","_classPrivateFieldGet5","feedbackOnViewDone","_classPrivateFieldGet6","render","React","onShare","onTerminate","onSubmitFeedback","onSwitchToChat","onFeedbackOnView","onDetailChange","ref","_CruiseCanvas2","e","_set_shareEvent","_set_terminateEvent","_set_feedbackSubmitEvent","_set_feedbackOnViewEvent","_set_switch","_set_detailChange","c","_initClass","_applyDecs","shadowOptions","attribute","type","Boolean","Number","o","_","has","_checkInRHS","SIZING_STYLE","getMirroredStyle","element","uiTextNodeStyle","window","getComputedStyle","map","name","getPropertyValue","join","hiddenElement","hiddenTextarea","modKey","test","navigator","platform","TextareaAutoResize","LegacyTextareaAutoResize","autoResize","_autoResize","minRows","maxRows","borderSize","paddingSize","containerRef","value","propValue","style","submitWhen","desiredSelectionRef","onChange","onSubmit","onKeyDown","onCompositionStart","onCompositionEnd","props","setValue","useState","textareaRef","useRef","autoStyle","setAutoStyle","useImperativeHandle","focus","textarea","_textarea$value","valueLength","length","setSelectionRange","doAutoResize","useCallback","uiTextNode","options","minHeight","maxHeight","overflowY","document","createElement","setAttribute","body","appendChild","placeholder","height","scrollHeight","singleRowHeight","parseFloat","Math","max","min","resize","calculateAutoSizeStyle","flushSync","useEffect","compositionRef","handleCompositionStart","handleCompositionEnd","handleKeyDown","key","shiftKey","preventDefault","stopPropagation","useLayoutEffect","desiredSelection","start","end","container","previousInlineSize","observer","ResizeObserver","entries","entry","target","currentInlineSize","contentBoxSize","inlineSize","contentRect","width","undefined","isInitial","requestAnimationFrame","observe","disconnect","_extends","K","en","ASK_ANY_THING","COMMON_TASKS","zh","t","i18n","getFixedT","WrappedIcon","wrapBrick","WrappedActions","onActionClick","onItemDragEnd","onItemDragStart","ChatBoxComponent","LegacyChatBoxComponent","_ChatBox","_ChatBox_brand","_handleMessageSubmit","_handleEmployeeMention","ChatBox","_defineProperty","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_aiEmployees","_init_extra_aiEmployees","_init_messageSubmit","_init_extra_messageSubmit","_get_messageSubmit","_init_employeeMention","_init_extra_employeeMention","employee","_get_employeeMention","disabled","autoFocus","aiEmployees","_this$ref$current","getValue","_this$ref$current2","focusOnInput","_this$ref$current3","onEmployeeMention","valueRef","mentionPopover","setMentionPopover","mentionedText","setMentionedText","activeActionIndex","setActiveActionIndex","selectionRef","store","__elevo_try_it_out","content","_textareaRef$current","handleSubmit","currentTarget","handleChange","selectionStart","selectionEnd","previousContent","slice","mentionIndex","lastIndexOf","mentionText","toLowerCase","position","index","textContent","span","rect","getBoundingClientRect","remove","top","left","getCaretPositionInTextarea","matchedEmployees","filter","employeeId","includes","range","actions","text","data","handleSubmitClick","Promise","resolve","then","_textareaRef$current2","mentionPrefix","useMemo","_textareaRef$current3","indexOf","mentionOverlay","_textareaRef$current4","prefix","measureContent","getContentRectInTextarea","handleMention","action","mention","newValue","nativeEvent","stopImmediatePropagation","prev","nextIndex","total","currentStart","currentEnd","className","onClick","lib","icon","checkedKeys","_ChatBox2","_set_messageSubmit","_set_employeeMention","styleTexts","styleText","delegatesFocus","_HomeContainer","HomeContainer","HomeContainerComponent","_HomeContainer2","WrappedMiniLineChart","_StatWithMiniChart","StatWithMiniChart","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_size","_init_extra_size","_init_lineColor","_init_extra_lineColor","_init_showArea","_init_extra_showArea","_init_min","_init_extra_min","_init_max","_init_extra_max","_init_xField","_init_extra_xField","_init_yField","_init_extra_yField","_init_data","_init_extra_data","label","size","lineColor","showArea","xField","yField","StatWithMiniChartComponent","chartProps","lineWidth","_StatWithMiniChart2","NEW_CHAT","LOGOUT","TODAY","YESTERDAY","PREVIOUS_7_DAYS","PREVIOUS_30_DAYS","SWITCH_LANGUAGE","PROJECTS","HISTORY","CREATE_PROJECT","MOVE_TO_PROJECT","UNTITLED","UNNAMED","WrappedLink","WrappedDropdownActions","onVisibleChange","WrappedEasyopsAvatar","WrappedMiniActions","WrappedIconButton","ElevoApi_listElevoConversations","async","params","http","get","ADD_ICON","ChatHistory","LowLevelChatHistory","historyActiveId","historyActions","historyUrlTemplate","projectActiveId","projectUrlTemplate","projectActions","canAddProject","onHistoryClick","onProjectActionClick","onAddProject","rootRef","projects","setProjects","projectsCollapsed","setProjectsCollapsed","projectsError","setProjectsError","historyList","setHistoryList","historyCollapsed","setHistoryCollapsed","nextToken","setNextToken","loadNextToken","setLoadNextToken","historyError","setHistoryError","initialRef","movedConversations","setMovedConversations","mergedHistoryActions","isDropdown","items","project","instanceId","page","page_size","ElevoApi_getElevoProjects","list","error","console","all","token","limit","onlyOwner","onlyUnrelatedProject","interceptorParams","ignoreLoadingBar","setTimeout","_ref2","conversations","catch","actionsVisible","setActionsVisible","nextRef","next","root","IntersectionObserver","isIntersecting","pullIdRef","pull","pullId","tempList","prevList","newList","newIds","Set","item","newItemsMap","Map","foundIntersection","foundChanged","isFirst","newItem","isEqual","removeProject","projectId","p","addProject","moveConversation","filteredHistoryList","classNames","collapsed","variant","tooltip","active","url","parseTemplate","title","theme","spinning","DONE_STATES","state","SIDEBAR_ICON","WrappedElevoLogo","ElevoSidebarComponent","LegacyElevoSidebarComponent","_ElevoSidebar","_ElevoSidebar_brand","_handleLogout","_handleActionClick","_handleProjectActionClick","_handleAddProject","ElevoSidebar","_init_userInstanceId","_init_extra_userInstanceId","_init_behavior","_init_extra_behavior","_init_bordered","_init_extra_bordered","_init_logoUrl","_init_extra_logoUrl","_init_newChatUrl","_init_extra_newChatUrl","_init_newChatLinkWhenCollapsed","_init_extra_newChatLinkWhenCollapsed","_init_historyActiveId","_init_extra_historyActiveId","_init_historyUrlTemplate","_init_extra_historyUrlTemplate","_init_historyActions","_init_extra_historyActions","_init_projectActiveId","_init_extra_projectActiveId","_init_projectUrlTemplate","_init_extra_projectUrlTemplate","_init_projectActions","_init_extra_projectActions","_init_links","_init_extra_links","_init_canAddProject","_init_extra_canAddProject","_init_logout","_init_extra_logout","_get_logout","_init_actionClick","_init_extra_actionClick","_get_actionClick","_init_projectActionClick","_init_extra_projectActionClick","_get_projectActionClick","_init_addProject","_init_extra_addProject","_get_addProject","userInstanceId","behavior","bordered","logoUrl","newChatUrl","newChatLinkWhenCollapsed","links","pullHistory","delay","close","_classPrivateFieldGet7","_classPrivateFieldGet8","_classPrivateFieldGet9","onLogout","setCollapsed","handleCollapse","handleExpand","handleClickMask","handleHistoryClick","dropdownActions","historyRef","_historyRef$current","_historyRef$current2","_historyRef$current2$","_historyRef$current3","_historyRef$current3$","_historyRef$current4","_historyRef$current4$","link","changeLanguage","language","split","getHistory","reload","nameOrInstanceId","showName","_ElevoSidebar2","_set_logout","_set_actionClick","_set_projectActionClick","_set_addProject","WrappedTooltip","_IconButton","IconButton","_init_icon","_init_extra_icon","_init_tooltip","_init_extra_tooltip","_init_variant","_init_extra_variant","IconButtonComponent","btn","_IconButton2","ALL","EXPLORE_EXCELLENT_CASES","WrappedShowCase","WrappedTabList","onTabClick","_ShowCases","ShowCases","_init_list","_init_extra_list","_init_limit","_init_extra_limit","ShowCasesComponent","groups","scenario","activeGroup","setActiveGroup","filteredList","filtered","tabs","group","activeTab","caseTitle","summary","_ShowCases2","MCP_HUB","SERVER_cmdb","SERVER_cmdb_product_helper","SERVER_alert","SERVER_web_builder","SERVER_web_builder2","SERVER_host_troubleshooting","SERVER_system_inspection","SERVER_grafana","SERVER_kubernetes","SERVER_llm","DEFAULT_TOOL_ICON","PLATFORM_CONFIG","servers","_McpTools","McpTools","_init_withContainer","_init_extra_withContainer","withContainer","McpToolsComponent","groupMap","platformMap","forEach","groupName","server","replaceAll","set","find","_name","platformName","orderedNames","sort","_ref3","_ref4","nameA","nameB","indexA","indexB","platforms","keys","names","a","b","aIndex","bIndex","activePlatform","setActivePlatform","filteredGroups","groupedList","platformGroups","_ref5","node","_ref6","_item$icon","fallback","description","_McpTools2","ForwardedChatStreamComponent","ChatStreamComponent","_ChatStream","_ChatStream_brand","_onSwitchToCanvas","ChatStream","onSwitchToCanvas","_ChatStream2","AI_EMPLOYEES","_AIEmployees","AIEmployees","_init_industries","_init_extra_industries","_init_urlTemplate","_init_extra_urlTemplate","industries","urlTemplate","AIEmployeesComponent","_industries","industry","activeIndustry","setActiveIndustry","array","role","clickable","avatar","src","_AIEmployees2","AGENTS","_AIAgents","AIAgents","AIAgentsComponent","_item$tags","tags","tag","tagIndex","_AIAgents2","customElements","define","createProviderClass","_PageContainer","PageContainer","_init_pageTitle","_init_extra_pageTitle","_init_breadcrumbs","_init_extra_breadcrumbs","pageTitle","breadcrumbs","PageContainerComponent","getRuntime","applyPageTitle","_PageContainer2","_TabList","_TabList_brand","_handleTabClick","TabList","_init_tabs","_init_extra_tabs","_init_activeTab","_init_extra_activeTab","_init_tabClick","_init_extra_tabClick","tab","_get_tabClick","TabListComponent","part","_TabList2","_set_tabClick","PLEASE_SELECT","SEARCH_PLACEHOLDER","SEARCH_NO_DATA","WrappedPopover","onBeforeVisibleChange","WrappedLoadingContainer","WrappedMenu","WrappedMenuItem","WrappedInput","onValueChange","_DropdownSelect","_DropdownSelect_brand","_handleChange","DropdownSelect","_init_options","_init_extra_options","_init_labelMaxWidth","_init_extra_labelMaxWidth","_init_loading","_init_extra_loading","_init_searchPlaceholder","_init_extra_searchPlaceholder","_init_dropdownContentStyle","_init_extra_dropdownContentStyle","_init_dropdownMaxWidth","_init_extra_dropdownMaxWidth","_init_showSearch","_init_extra_showSearch","_init_changeEvent","_init_extra_changeEvent","option","_get_changeEvent","labelMaxWidth","loading","searchPlaceholder","dropdownContentStyle","dropdownMaxWidth","showSearch","DropdownSelectComponent","_value","_options","open","setOpen","q","setQ","setOptions","activeOption","opt","filteredOptions","ops","handleBeforeVisibleChange","handleSearchChange","debounce","evt","placement","trigger","arrow","distance","slot","maxWidth","_DropdownSelect2","_set_changeEvent","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","WrappedPageTitle","WrappedMainView","WrappedNarrowView","_PreviewContainer","_rootId","PreviewContainer","_init_source","_init_extra_source","_init_url","_init_extra_url","uniqueId","source","Suspense","styles","PreviewContainerComponent","rootId","parsedResultPromise","worker","getRemoteTsxParserWorker","parse","parsedResult","use","convertedResultPromise","convertTsx","expanded","convertedResult","viewTitle","getViewTitle","RenderComponent","portal","createPortal","unstable_createRoot","supportsUseChildren","unmount","_rootRef$current","brick","context","functions","templates","main","_PreviewContainer2","WrapperIcon","WrapperButton","_ActionButtons","_ActionButtons_brand","ActionButtons","_init_items","_init_extra_items","_init_activeKey","_init_extra_activeKey","_init_change","_init_extra_change","activeKey","_get_change","ActionButtonsComponent","propActiveKey","setActiveKey","initializedRef","_items$find","hidden","filteredItems","themeVariant","_ActionButtons2","_set_change","UN_START_STATUS","RUNNING_STATUS","COMPLETED_STATUS","_supports","WrappedButton","iconMap","ready","working","completed","iconActions","category","GoalCardItem","goalItem","idWidth","cardStyle","onStatusChange","onTitleChange","onNewChat","onAppendChild","onRevokeAppendChild","isActive","serialNumber","owner","pending","editing","setEditing","handleFocus","handleBlur","trim","blur","titleRef","_titleRef$current","paddingLeft","level","onFocus","onBlur","contentEditable","editable","div","supportsContentEditablePlaintextOnly","suppressContentEditableWarning","GoalCardListComponent","LegacyGoalCardListComponent","_GoalCardList","_GoalCardList_brand","_handleItemClick","_handleItemStatusChange","_handleTitleChange","_handleNewChat","GoalCardList","_init_goalList","_init_extra_goalList","_init_cardStyle","_init_extra_cardStyle","_init_itemClickEvent","_init_extra_itemClickEvent","_get_itemClickEvent","_init_itemStatusChangeEvent","_init_extra_itemStatusChangeEvent","_get_itemStatusChangeEvent","_init_itemTitleChangeEvent","_init_extra_itemTitleChangeEvent","_get_itemTitleChangeEvent","_init_itemNewChatEvent","_init_extra_itemNewChatEvent","_get_itemNewChatEvent","goalList","appendChildDone","pendingId","onItemClick","_goalList","setGoalList","updateGoalItem","field","callback","updatedItem","goal","_goalList$reduce","reduce","handleTitleChange","newTitle","handleStatusChange","newStatus","newChild","pendingParentId","_prevList$findIndex","findIndex","offsetIndex","handleAppendChild","_GoalCardList2","_set_itemClickEvent","_set_itemStatusChangeEvent","_set_itemTitleChangeEvent","_set_itemNewChatEvent","CardItemStyleText","PROJECT_OVERALL","WrappedAvatar","_ProjectConversations","_ProjectConversations_brand","_handleGoalClick","ProjectConversations","_init_actions","_init_extra_actions","_init_goals","_init_extra_goals","_init_goalClick","_init_extra_goalClick","conversation","_get_goalClick","goals","ProjectConversationsComponent","onGoalClick","ConversationLink","_goals$find","goalRef","el","handleClick","addEventListener","removeEventListener","global","goalInstanceId","g","username","humanizeTime","startTime","HumanizeTimeFormat","full","relative","_ProjectConversations2","_set_goalClick","_ProjectKnowledges","_ProjectKnowledges_brand","ProjectKnowledges","_init_itemClick","_init_extra_itemClick","_get_itemClick","ProjectKnowledgesComponent","KnowledgeLink","knowledge","time","user","_ProjectKnowledges2","_set_itemClick","STARTED_A_CHAT","CREATED_THIS_GOAL","CHANGED_THE_GOAL_TITLE","CHANGED_THE_GOAL_DESCRIPTION","CHANGED_THE_GOAL","DELETED_THIS_GOAL","DECOMPOSED_THIS_GOAL","DECOMPOSED_THIS_GOAL_plural","SET_OWNER","REMOVED_GOAL_PARTICIPANTS","REMOVED_GOAL_PARTICIPANTS_plural","ADDED_GOAL_PARTICIPANTS","ADDED_GOAL_PARTICIPANTS_plural","COMMENTED","COMMA","SEMICOLON","_ActivityTimeline","ActivityTimeline","_init_chatUrlTemplate","_init_extra_chatUrlTemplate","chatUrlTemplate","ActivityTimelineComponent","activity","_activity$metadata","_activity$metadata2","user_id","user_name","action_type","metadata","conversation_title","after","count","sub_goals_count","sub_goals","removed","added","beforeUserIds","before","users","afterUserIds","descriptions","getAlterPARTICIPANTsActivityDescription","comment_content","_ActivityTimeline2","TERMINATE_THE_TASK","ICON_LOADING","ICON_STOP","_ChatInput","_ChatInput_brand","_handleTerminate","ChatInput","_init_submitDisabled","_init_extra_submitDisabled","_init_supportsTerminate","_init_extra_supportsTerminate","_init_terminating","_init_extra_terminating","_init_terminate","_init_extra_terminate","_get_terminate","submitDisabled","supportsTerminate","terminating","ChatInputComponent","wrap","setWrap","onBeforeSubmit","blockSize","handleContainerClick","composedPath","HTMLTextAreaElement","HTMLButtonElement","_ChatInput2","_set_terminate","_ElevoLogo","ElevoLogo","alt","Logo","_ElevoLogo2","WATCH_REPLAY","bgClasses","_ShowCase","ShowCase","_init_caseTitle","_init_extra_caseTitle","_init_summary","_init_extra_summary","ShowCaseComponent","floor","random","_ShowCase2","tool","post","stepId"],"sourceRoot":""}
|