@kokoa/clotho-editor 0.1.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/LICENSE +21 -0
- package/README.md +54 -0
- package/dist/chunk-UE32Q6U5.js +943 -0
- package/dist/chunk-UE32Q6U5.js.map +1 -0
- package/dist/clotho-editor.css +1921 -0
- package/dist/index.d.ts +138 -0
- package/dist/index.js +425 -0
- package/dist/index.js.map +1 -0
- package/dist/main-SWHHYTLM.js +16214 -0
- package/dist/main-SWHHYTLM.js.map +1 -0
- package/docs/PORTING.md +136 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/legacy/grid.ts","../src/legacy/canvas-utils.ts","../src/legacy/anchor-system.ts","../src/legacy/canvas-handles.ts","../src/legacy/canvas-preview.ts","../src/legacy/canvas.ts","../src/legacy/element-list.ts","../src/legacy/studio-focus.ts","../src/legacy/studio-align.ts","../src/legacy/properties.ts","../src/legacy/timeline.ts","../src/legacy/icon-data.ts","../src/legacy/icon-library.ts","../src/legacy/studio-image-upload.ts","../src/legacy/studio-ui.ts","../src/legacy/studio-save-load.ts","../src/legacy/studio-palette.ts","../src/legacy/studio-history.ts","../src/legacy/main/ui-query.ts","../src/legacy/main/inline-edit.ts","../src/legacy/main/panes.ts","../src/legacy/main/playback.ts","../src/legacy/studio-clipboard.ts","../src/legacy/main/selection-nav.ts","../src/legacy/main/keyboard-shortcuts.ts","../src/legacy/main.ts"],"names":["canvasEl","snap","id","elState","baseEl","anchor","def","showPreview","hidePreview","render","onClick","escapeHtml","e","onMouseDown","onMouseMove","onMouseUp","listEl","searchEl","loadAnimation","onKeydown","dialogEl","onListClick","renderList","isComposingFallback","STORAGE_KEY","step"],"mappings":";;;;AAAA,IAAM,WAAA,GAAc,aAAA;AACpB,IAAM,QAAA,GAAW,iBAAA;AACjB,IAAM,YAAA,GAAe,EAAA;AAErB,IAAI,WAAA,GAAc,KAAA;AAClB,IAAI,QAAA,GAAW,YAAA;AACf,IAAM,SAAA,uBAAgB,GAAA,EAAgB;AAE/B,SAAS,QAAA,GAAiB;AAC/B,EAAA,IAAI;AACF,IAAA,WAAA,GAAc,YAAA,CAAa,OAAA,CAAQ,WAAW,CAAA,KAAM,GAAA;AACpD,IAAA,MAAM,GAAA,GAAM,MAAA,CAAO,YAAA,CAAa,OAAA,CAAQ,QAAQ,CAAC,CAAA;AACjD,IAAA,IAAI,OAAO,QAAA,CAAS,GAAG,CAAA,IAAK,GAAA,GAAM,GAAG,QAAA,GAAW,GAAA;AAAA,EAClD,CAAA,CAAA,MAAQ;AACN,IAAA;AAAA,EACF;AACF;AAEO,SAAS,aAAA,GAAyB;AACvC,EAAA,OAAO,WAAA;AACT;AAEO,SAAS,WAAA,GAAsB;AACpC,EAAA,OAAO,QAAA;AACT;AAEO,SAAS,eAAe,EAAA,EAAmB;AAChD,EAAA,IAAI,gBAAgB,EAAA,EAAI;AACxB,EAAA,WAAA,GAAc,EAAA;AACd,EAAA,IAAI;AACF,IAAA,YAAA,CAAa,OAAA,CAAQ,WAAA,EAAa,EAAA,GAAK,GAAA,GAAM,GAAG,CAAA;AAAA,EAClD,CAAA,CAAA,MAAQ;AACN,IAAA;AAAA,EACF;AACA,EAAA,KAAA,MAAW,EAAA,IAAM,WAAW,EAAA,EAAG;AACjC;AAEO,SAAS,cAAc,EAAA,EAA4B;AACxD,EAAA,SAAA,CAAU,IAAI,EAAE,CAAA;AAChB,EAAA,OAAO,MAAM,SAAA,CAAU,MAAA,CAAO,EAAE,CAAA;AAClC;AAEO,SAAS,KAAK,KAAA,EAAuB;AAC1C,EAAA,IAAI,CAAC,aAAa,OAAO,KAAA;AACzB,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,KAAA,GAAQ,QAAQ,CAAA,GAAI,QAAA;AACxC;AAEO,SAAS,UAAU,EAAA,EAGxB;AACA,EAAA,IAAI,CAAC,aAAa,OAAO,EAAA;AACzB,EAAA,OAAO,EAAE,CAAA,EAAG,IAAA,CAAK,EAAA,CAAG,CAAC,GAAG,CAAA,EAAG,IAAA,CAAK,EAAA,CAAG,CAAC,CAAA,EAAE;AACxC;;;AC7CO,IAAM,MAAA,GAAS,4BAAA;AAEf,SAAS,UAAU,CAAA,EAAmB;AAC3C,EAAA,OAAO,CAAA,CACJ,OAAA,CAAQ,IAAA,EAAM,OAAO,EACrB,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,QAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,OAAA,CAAQ,MAAM,QAAQ,CAAA;AAC3B;AAEO,SAAS,cAAc,CAAA,EAAmB;AAC/C,EAAA,OAAO,EAAE,OAAA,CAAQ,QAAA,EAAU,CAAC,CAAA,KAAM,CAAA,EAAA,EAAK,CAAC,CAAA,CAAE,CAAA;AAC5C;AAEO,SAAS,eAAA,CACd,QACA,KAAA,EACiC;AACjC,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AACrD,IAAA,OAAO;AAAA,MACL,CAAA,EAAI,KAAA,CAAM,CAAA,GAAgB,KAAA,CAAM,KAAA,GAAmB,CAAA;AAAA,MACnD,CAAA,EAAI,KAAA,CAAM,CAAA,GAAgB,KAAA,CAAM,MAAA,GAAoB;AAAA,KACtD;AAAA,EACF;AACA,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA;AAClB,IAAA,OAAO,EAAE,CAAA,EAAG,KAAA,CAAM,EAAA,EAAc,CAAA,EAAG,MAAM,EAAA,EAAa;AACxD,EAAA,IAAI,OAAO,IAAA,KAAS,MAAA;AAClB,IAAA,OAAO,EAAE,CAAA,EAAG,KAAA,CAAM,CAAA,EAAa,CAAA,EAAG,MAAM,CAAA,EAAY;AACtD,EAAA,IAAI,MAAA,CAAO,SAAS,SAAA,EAAW;AAC7B,IAAA,MAAM,OAAO,kBAAA,CAAmB,MAAA,CAAO,KAAA,CAAM,MAAA,IAAU,EAAE,CAAC,CAAA;AAC1D,IAAA,IAAI,IAAA,EAAM,OAAO,EAAE,CAAA,EAAG,KAAK,CAAA,GAAI,IAAA,CAAK,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,IAAA,CAAK,CAAA,GAAI,IAAA,CAAK,IAAI,CAAA,EAAE;AAAA,EACpE;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,MAAA,EAAQ;AAE1B,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,IAAK,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,EAAE,CAAA,EAAG,CAAA,EAAE;AAAA,EAC9D;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,cAAA,CACd,QACA,KAAA,EAC4C;AAC5C,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AACrD,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,MAAM,IAAI,KAAA,CAAM,KAAA;AAChB,IAAA,MAAM,IAAI,KAAA,CAAM,MAAA;AAChB,IAAA,OAAO;AAAA,MACL,EAAE,CAAA,EAAG,CAAA,GAAI,IAAI,CAAA,EAAG,CAAA,EAAG,QAAQ,KAAA,EAAM;AAAA,MACjC,EAAE,GAAG,CAAA,GAAI,CAAA,EAAG,GAAG,CAAA,GAAI,CAAA,GAAI,CAAA,EAAG,MAAA,EAAQ,OAAA,EAAQ;AAAA,MAC1C,EAAE,GAAG,CAAA,GAAI,CAAA,GAAI,GAAG,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,MAAA,EAAQ,QAAA,EAAS;AAAA,MAC3C,EAAE,CAAA,EAAG,CAAA,EAAG,IAAI,CAAA,GAAI,CAAA,EAAG,QAAQ,MAAA;AAAO,KACpC;AAAA,EACF;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,MAAM,KAAK,KAAA,CAAM,EAAA;AACjB,IAAA,MAAM,KAAK,KAAA,CAAM,EAAA;AACjB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,OAAO;AAAA,MACL,EAAE,CAAA,EAAG,EAAA,EAAI,GAAG,EAAA,GAAK,CAAA,EAAG,QAAQ,KAAA,EAAM;AAAA,MAClC,EAAE,CAAA,EAAG,EAAA,GAAK,GAAG,CAAA,EAAG,EAAA,EAAI,QAAQ,OAAA,EAAQ;AAAA,MACpC,EAAE,CAAA,EAAG,EAAA,EAAI,GAAG,EAAA,GAAK,CAAA,EAAG,QAAQ,QAAA,EAAS;AAAA,MACrC,EAAE,CAAA,EAAG,EAAA,GAAK,GAAG,CAAA,EAAG,EAAA,EAAI,QAAQ,MAAA;AAAO,KACrC;AAAA,EACF;AACA,EAAA,OAAO,EAAC;AACV;AAEO,SAAS,aAAA,CACd,EAAA,EACA,KAAA,EACA,MAAA,EACiC;AACjC,EAAA,IAAI,EAAA,CAAG,IAAA,KAAS,MAAA,IAAU,EAAA,CAAG,SAAS,OAAA,EAAS;AAC7C,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,MAAM,IAAI,KAAA,CAAM,KAAA;AAChB,IAAA,MAAM,IAAI,KAAA,CAAM,MAAA;AAChB,IAAA,MAAM,EAAA,GAAK,IAAI,CAAA,GAAI,CAAA;AACnB,IAAA,MAAM,EAAA,GAAK,IAAI,CAAA,GAAI,CAAA;AACnB,IAAA,QAAQ,MAAA;AAAQ,MACd,KAAK,KAAA;AACH,QAAA,OAAO,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAE;AAAA,MACpB,KAAK,OAAA;AACH,QAAA,OAAO,EAAE,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,GAAG,EAAA,EAAG;AAAA,MAC3B,KAAK,QAAA;AACH,QAAA,OAAO,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,IAAI,CAAA,EAAE;AAAA,MAC3B,KAAK,MAAA;AACH,QAAA,OAAO,EAAE,CAAA,EAAG,CAAA,EAAG,EAAA,EAAG;AAAA,MACpB,KAAK,QAAA;AAAA,MACL,KAAK,MAAA;AAAA,MACL;AACE,QAAA,OAAO,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG;AAAA;AAC1B,EACF;AACA,EAAA,IAAI,EAAA,CAAG,SAAS,QAAA,EAAU;AACxB,IAAA,MAAM,KAAK,KAAA,CAAM,EAAA;AACjB,IAAA,MAAM,KAAK,KAAA,CAAM,EAAA;AACjB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,QAAQ,MAAA;AAAQ,MACd,KAAK,KAAA;AACH,QAAA,OAAO,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,KAAK,CAAA,EAAE;AAAA,MAC5B,KAAK,OAAA;AACH,QAAA,OAAO,EAAE,CAAA,EAAG,EAAA,GAAK,CAAA,EAAG,GAAG,EAAA,EAAG;AAAA,MAC5B,KAAK,QAAA;AACH,QAAA,OAAO,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,KAAK,CAAA,EAAE;AAAA,MAC5B,KAAK,MAAA;AACH,QAAA,OAAO,EAAE,CAAA,EAAG,EAAA,GAAK,CAAA,EAAG,GAAG,EAAA,EAAG;AAAA,MAC5B;AACE,QAAA,OAAO,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG;AAAA;AAC1B,EACF;AACA,EAAA,IAAI,EAAA,CAAG,IAAA,KAAS,MAAA,EAAQ,OAAO,EAAE,GAAG,KAAA,CAAM,CAAA,EAAa,CAAA,EAAG,KAAA,CAAM,CAAA,EAAY;AAC5E,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,yBAAA,CACd,EAAA,EACA,KAAA,EACA,KAAA,EACQ;AACR,EAAA,MAAM,UAAA,GAAuB,CAAC,KAAA,EAAO,OAAA,EAAS,UAAU,MAAM,CAAA;AAC9D,EAAA,IAAI,IAAA,GAAe,OAAA;AACnB,EAAA,IAAI,QAAA,GAAW,QAAA;AACf,EAAA,KAAA,MAAW,KAAK,UAAA,EAAY;AAC1B,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,EAAA,EAAI,KAAA,EAAO,CAAC,CAAA;AACpC,IAAA,IAAI,CAAC,CAAA,EAAG;AACR,IAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,CAAA,CAAE,CAAA,GAAI,MAAM,CAAA,EAAG,CAAA,CAAE,CAAA,GAAI,KAAA,CAAM,CAAC,CAAA;AACjD,IAAA,IAAI,IAAI,QAAA,EAAU;AAChB,MAAA,QAAA,GAAW,CAAA;AACX,MAAA,IAAA,GAAO,CAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,kBAAA,CACd,MAAA,EACA,SAAA,EACA,IAAA,EACA,OAAA,EAC8B;AAC9B,EAAA,MAAM,UAAA,GAAuB,CAAC,KAAA,EAAO,OAAA,EAAS,UAAU,MAAM,CAAA;AAC9D,EAAA,IAAI,QAAA,GAAyC,EAAE,IAAA,EAAM,OAAA,EAAS,IAAI,MAAA,EAAO;AACzE,EAAA,IAAI,QAAA,GAAW,QAAA;AACf,EAAA,KAAA,MAAW,MAAM,UAAA,EAAY;AAC3B,IAAA,KAAA,MAAW,MAAM,UAAA,EAAY;AAC3B,MAAA,MAAM,EAAA,GAAK,aAAA,CAAc,MAAA,EAAQ,SAAA,EAAW,EAAE,CAAA;AAC9C,MAAA,MAAM,EAAA,GAAK,aAAA,CAAc,IAAA,EAAM,OAAA,EAAS,EAAE,CAAA;AAC1C,MAAA,IAAI,CAAC,EAAA,IAAM,CAAC,EAAA,EAAI;AAChB,MAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,EAAA,CAAG,CAAA,GAAI,GAAG,CAAA,EAAG,EAAA,CAAG,CAAA,GAAI,EAAA,CAAG,CAAC,CAAA;AAC7C,MAAA,IAAI,IAAI,QAAA,EAAU;AAChB,QAAA,QAAA,GAAW,CAAA;AACX,QAAA,QAAA,GAAW,EAAE,IAAA,EAAM,EAAA,EAAI,EAAA,EAAI,EAAA,EAAG;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,QAAA;AACT;AAEO,SAAS,kBACd,MAAA,EACiC;AACjC,EAAA,MAAM,QAAQ,MAAA,CAAO,IAAA,GAAO,KAAA,CAAM,KAAK,EAAE,CAAC,CAAA;AAC1C,EAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AACnB,EAAA,MAAM,CAAC,GAAG,CAAC,CAAA,GAAI,MAAM,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AAC1C,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,IAAK,CAAC,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,IAAA;AACvD,EAAA,OAAO,EAAE,GAAG,CAAA,EAAE;AAChB;AAEO,SAAS,kBAAA,CACd,MAAA,EACA,EAAA,EACA,EAAA,EACQ;AACR,EAAA,OAAO,MAAA,CACJ,MAAK,CACL,KAAA,CAAM,KAAK,CAAA,CACX,GAAA,CAAI,CAAC,IAAA,KAAS;AACb,IAAA,MAAM,CAAC,GAAG,CAAC,CAAA,GAAI,KAAK,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACzC,IAAA,IAAI,OAAO,QAAA,CAAS,CAAC,CAAA,IAAK,MAAA,CAAO,SAAS,CAAC,CAAA;AACzC,MAAA,OAAO,CAAA,EAAA,CAAI,CAAA,GAAI,EAAA,EAAI,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,EAAA,CAAK,CAAA,GAAI,EAAA,EAAI,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AACtD,IAAA,OAAO,IAAA;AAAA,EACT,CAAC,CAAA,CACA,IAAA,CAAK,GAAG,CAAA;AACb;AAEO,SAAS,mBACd,MAAA,EACuD;AACvD,EAAA,IAAI,OAAO,QAAA,EACT,IAAA,GAAO,QAAA,EACP,IAAA,GAAO,WACP,IAAA,GAAO,CAAA,QAAA;AACT,EAAA,IAAI,GAAA,GAAM,KAAA;AACV,EAAA,KAAA,MAAW,QAAQ,MAAA,CAAO,IAAA,EAAK,CAAE,KAAA,CAAM,KAAK,CAAA,EAAG;AAC7C,IAAA,MAAM,CAAC,GAAG,CAAC,CAAA,GAAI,KAAK,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACzC,IAAA,IAAI,CAAC,OAAO,QAAA,CAAS,CAAC,KAAK,CAAC,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,EAAG;AAChD,IAAA,GAAA,GAAM,IAAA;AACN,IAAA,IAAI,CAAA,GAAI,MAAM,IAAA,GAAO,CAAA;AACrB,IAAA,IAAI,CAAA,GAAI,MAAM,IAAA,GAAO,CAAA;AACrB,IAAA,IAAI,CAAA,GAAI,MAAM,IAAA,GAAO,CAAA;AACrB,IAAA,IAAI,CAAA,GAAI,MAAM,IAAA,GAAO,CAAA;AAAA,EACvB;AACA,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,OAAO,EAAE,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,GAAG,IAAA,GAAO,IAAA,EAAM,CAAA,EAAG,IAAA,GAAO,IAAA,EAAK;AAC5D;AAEO,SAAS,gBAAA,CACdA,WACA,SAAA,EACuD;AACvD,EAAA,IAAI,CAACA,WAAU,OAAO,IAAA;AACtB,EAAA,MAAM,IAAIA,SAAAA,CAAS,aAAA;AAAA,IACjB,CAAA,eAAA,EAAkB,aAAA,CAAc,SAAS,CAAC,CAAA,EAAA;AAAA,GAC5C;AACA,EAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AACf,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,GAAO,EAAE,OAAA,EAAQ;AACvB,IAAA,OAAO,EAAE,CAAA,EAAG,IAAA,CAAK,CAAA,EAAG,CAAA,EAAG,IAAA,CAAK,CAAA,EAAG,CAAA,EAAG,IAAA,CAAK,KAAA,EAAO,CAAA,EAAG,IAAA,CAAK,MAAA,EAAO;AAAA,EAC/D,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEO,SAAS,gBAAA,CACdA,WACA,SAAA,EACuD;AACvD,EAAA,IAAI,CAACA,WAAU,OAAO,IAAA;AACtB,EAAA,MAAM,IAAIA,SAAAA,CAAS,aAAA;AAAA,IACjB,CAAA,eAAA,EAAkB,aAAA,CAAc,SAAS,CAAC,CAAA,EAAA;AAAA,GAC5C;AACA,EAAA,IAAI,CAAC,GAAG,OAAO,IAAA;AACf,EAAA,MAAM,MAAA,GAAS,CAAA,CAAE,aAAA,CAAc,MAAM,CAAA;AACrC,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,GAAO,OAAO,OAAA,EAAQ;AAC5B,IAAA,OAAO,EAAE,CAAA,EAAG,IAAA,CAAK,CAAA,EAAG,CAAA,EAAG,IAAA,CAAK,CAAA,EAAG,CAAA,EAAG,IAAA,CAAK,KAAA,EAAO,CAAA,EAAG,IAAA,CAAK,MAAA,EAAO;AAAA,EAC/D,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEO,SAAS,kBAAA,CACd,CAAA,EACAC,KAAAA,EACA,IAAA,EAC2D;AAC3D,EAAA,MAAM,YACJ,OAAO,CAAA,CAAE,EAAA,KAAO,QAAA,IAAY,OAAO,CAAA,CAAE,EAAA,KAAO,QAAA,GACxC,EAAE,GAAG,CAAA,CAAE,EAAA,EAAI,CAAA,EAAG,CAAA,CAAE,IAAG,GACnB,IAAA;AACN,EAAA,MAAM,UACJ,OAAO,CAAA,CAAE,EAAA,KAAO,QAAA,IAAY,OAAO,CAAA,CAAE,EAAA,KAAO,QAAA,GACxC,EAAE,GAAG,CAAA,CAAE,EAAA,EAAI,CAAA,EAAG,CAAA,CAAE,IAAG,GACnB,IAAA;AACN,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA,GAAS,KAAK,GAAA,CAAI,CAAA,CAAE,MAAM,CAAA,GAAI,IAAA;AAC/C,EAAA,MAAM,OAAO,CAAA,CAAE,IAAA,GAAO,KAAK,GAAA,CAAI,CAAA,CAAE,IAAI,CAAA,GAAI,IAAA;AACzC,EAAA,MAAM,YAAY,CAAA,CAAE,MAAA,GAASA,MAAK,GAAA,CAAI,CAAA,CAAE,MAAM,CAAA,GAAI,IAAA;AAClD,EAAA,MAAM,UAAU,CAAA,CAAE,IAAA,GAAOA,MAAK,GAAA,CAAI,CAAA,CAAE,IAAI,CAAA,GAAI,IAAA;AAC5C,EAAA,MAAM,aAAA,GAAgB,CAAC,EAAE,MAAA,IAAU,SAAA,CAAA;AACnC,EAAA,MAAM,WAAA,GAAc,CAAC,EAAE,IAAA,IAAQ,OAAA,CAAA;AAE/B,EAAA,IAAI,CAAC,aAAA,IAAiB,CAAC,SAAA,EAAW,OAAO,IAAA;AACzC,EAAA,IAAI,CAAC,WAAA,IAAe,CAAC,OAAA,EAAS,OAAO,IAAA;AAErC,EAAA,IAAI,UAAA,GAAqB,EAAE,UAAA,IAAc,MAAA;AACzC,EAAA,IAAI,QAAA,GAAmB,EAAE,QAAA,IAAY,MAAA;AAErC,EAAA,IAAI,EAAA,GAAsC,IAAA;AAC1C,EAAA,IAAI,EAAA,GAAsC,IAAA;AAE1C,EAAA,IAAI,iBAAiB,WAAA,EAAa;AAChC,IAAA,IAAI,UAAA,KAAe,MAAA,IAAU,QAAA,KAAa,MAAA,EAAQ;AAChD,MAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,MAAA,EAAS,SAAA,EAAY,MAAO,OAAQ,CAAA;AACtE,MAAA,IAAI,UAAA,KAAe,MAAA,EAAQ,UAAA,GAAa,MAAA,CAAO,IAAA;AAC/C,MAAA,IAAI,QAAA,KAAa,MAAA,EAAQ,QAAA,GAAW,MAAA,CAAO,EAAA;AAAA,IAC7C;AACA,IAAA,EAAA,GAAK,aAAA,CAAc,MAAA,EAAS,SAAA,EAAY,UAAU,CAAA;AAClD,IAAA,EAAA,GAAK,aAAA,CAAc,IAAA,EAAO,OAAA,EAAU,QAAQ,CAAA;AAAA,EAC9C,CAAA,MAAA,IAAW,iBAAiB,OAAA,EAAS;AACnC,IAAA,IAAI,UAAA,KAAe,MAAA;AACjB,MAAA,UAAA,GAAa,yBAAA,CAA0B,MAAA,EAAS,SAAA,EAAY,OAAO,CAAA;AACrE,IAAA,EAAA,GAAK,aAAA,CAAc,MAAA,EAAS,SAAA,EAAY,UAAU,CAAA;AAClD,IAAA,EAAA,GAAK,OAAA;AAAA,EACP,CAAA,MAAA,IAAW,aAAa,WAAA,EAAa;AACnC,IAAA,IAAI,QAAA,KAAa,MAAA;AACf,MAAA,QAAA,GAAW,yBAAA,CAA0B,IAAA,EAAO,OAAA,EAAU,SAAS,CAAA;AACjE,IAAA,EAAA,GAAK,SAAA;AACL,IAAA,EAAA,GAAK,aAAA,CAAc,IAAA,EAAO,OAAA,EAAU,QAAQ,CAAA;AAAA,EAC9C,CAAA,MAAA,IAAW,aAAa,OAAA,EAAS;AAC/B,IAAA,EAAA,GAAK,SAAA;AACL,IAAA,EAAA,GAAK,OAAA;AAAA,EACP;AAEA,EAAA,IAAI,CAAC,EAAA,IAAM,CAAC,EAAA,EAAI,OAAO,IAAA;AACvB,EAAA,OAAO,EAAE,EAAA,EAAI,EAAA,CAAG,CAAA,EAAG,EAAA,EAAI,EAAA,CAAG,CAAA,EAAG,EAAA,EAAI,EAAA,CAAG,CAAA,EAAG,EAAA,EAAI,EAAA,CAAG,CAAA,EAAE;AAClD;AAEO,SAAS,iBAAA,CACd,CAAA,EACAA,KAAAA,EACA,IAAA,EAC2D;AAC3D,EAAA,MAAM,YACJ,OAAO,CAAA,CAAE,EAAA,KAAO,QAAA,IAAY,OAAO,CAAA,CAAE,EAAA,KAAO,QAAA,GACxC,EAAE,GAAG,CAAA,CAAE,EAAA,EAAI,CAAA,EAAG,CAAA,CAAE,IAAG,GACnB,IAAA;AACN,EAAA,MAAM,UACJ,OAAO,CAAA,CAAE,EAAA,KAAO,QAAA,IAAY,OAAO,CAAA,CAAE,EAAA,KAAO,QAAA,GACxC,EAAE,GAAG,CAAA,CAAE,EAAA,EAAI,CAAA,EAAG,CAAA,CAAE,IAAG,GACnB,IAAA;AACN,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA,GAAS,KAAK,GAAA,CAAI,CAAA,CAAE,MAAM,CAAA,GAAI,IAAA;AAC/C,EAAA,MAAM,OAAO,CAAA,CAAE,IAAA,GAAO,KAAK,GAAA,CAAI,CAAA,CAAE,IAAI,CAAA,GAAI,IAAA;AACzC,EAAA,MAAM,YAAY,CAAA,CAAE,MAAA,GAASA,MAAK,GAAA,CAAI,CAAA,CAAE,MAAM,CAAA,GAAI,IAAA;AAClD,EAAA,MAAM,UAAU,CAAA,CAAE,IAAA,GAAOA,MAAK,GAAA,CAAI,CAAA,CAAE,IAAI,CAAA,GAAI,IAAA;AAC5C,EAAA,MAAM,aAAA,GAAgB,CAAC,EAAE,MAAA,IAAU,SAAA,CAAA;AACnC,EAAA,MAAM,WAAA,GAAc,CAAC,EAAE,IAAA,IAAQ,OAAA,CAAA;AAC/B,EAAA,IAAI,CAAC,aAAA,IAAiB,CAAC,SAAA,EAAW,OAAO,IAAA;AACzC,EAAA,IAAI,CAAC,WAAA,IAAe,CAAC,OAAA,EAAS,OAAO,IAAA;AAErC,EAAA,IAAI,UAAA,GAAqB,EAAE,UAAA,IAAc,MAAA;AACzC,EAAA,IAAI,QAAA,GAAmB,EAAE,QAAA,IAAY,MAAA;AAErC,EAAA,IAAI,EAAA,GAAsC,IAAA;AAC1C,EAAA,IAAI,EAAA,GAAsC,IAAA;AAE1C,EAAA,IAAI,iBAAiB,WAAA,EAAa;AAChC,IAAA,IAAI,UAAA,KAAe,MAAA,IAAU,QAAA,KAAa,MAAA,EAAQ;AAChD,MAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,MAAA,EAAS,SAAA,EAAY,MAAO,OAAQ,CAAA;AACtE,MAAA,IAAI,UAAA,KAAe,MAAA,EAAQ,UAAA,GAAa,MAAA,CAAO,IAAA;AAC/C,MAAA,IAAI,QAAA,KAAa,MAAA,EAAQ,QAAA,GAAW,MAAA,CAAO,EAAA;AAAA,IAC7C;AACA,IAAA,EAAA,GAAK,aAAA,CAAc,MAAA,EAAS,SAAA,EAAY,UAAU,CAAA;AAClD,IAAA,EAAA,GAAK,aAAA,CAAc,IAAA,EAAO,OAAA,EAAU,QAAQ,CAAA;AAAA,EAC9C,CAAA,MAAA,IAAW,iBAAiB,OAAA,EAAS;AACnC,IAAA,IAAI,UAAA,KAAe,MAAA;AACjB,MAAA,UAAA,GAAa,yBAAA,CAA0B,MAAA,EAAS,SAAA,EAAY,OAAO,CAAA;AACrE,IAAA,EAAA,GAAK,aAAA,CAAc,MAAA,EAAS,SAAA,EAAY,UAAU,CAAA;AAClD,IAAA,EAAA,GAAK,OAAA;AAAA,EACP,CAAA,MAAA,IAAW,aAAa,WAAA,EAAa;AACnC,IAAA,IAAI,QAAA,KAAa,MAAA;AACf,MAAA,QAAA,GAAW,yBAAA,CAA0B,IAAA,EAAO,OAAA,EAAU,SAAS,CAAA;AACjE,IAAA,EAAA,GAAK,SAAA;AACL,IAAA,EAAA,GAAK,aAAA,CAAc,IAAA,EAAO,OAAA,EAAU,QAAQ,CAAA;AAAA,EAC9C,CAAA,MAAA,IAAW,aAAa,OAAA,EAAS;AAC/B,IAAA,EAAA,GAAK,SAAA;AACL,IAAA,EAAA,GAAK,OAAA;AAAA,EACP;AAEA,EAAA,IAAI,CAAC,EAAA,IAAM,CAAC,EAAA,EAAI,OAAO,IAAA;AACvB,EAAA,OAAO,EAAE,EAAA,EAAI,EAAA,CAAG,CAAA,EAAG,EAAA,EAAI,EAAA,CAAG,CAAA,EAAG,EAAA,EAAI,EAAA,CAAG,CAAA,EAAG,EAAA,EAAI,EAAA,CAAG,CAAA,EAAE;AAClD;;;AC/VO,SAAS,eAAA,CACd,SACA,KAAA,EACe;AACf,EAAA,MAAM,KAAK,OAAA,CAAQ,EAAA;AAEnB,EAAA,QAAQ,QAAQ,IAAA;AAAM,IACpB,KAAK,MAAA;AAAA,IACL,KAAK,OAAA,EAAS;AACZ,MAAA,MAAM,CAAA,GAAK,MAAM,CAAA,IAAgB,CAAA;AACjC,MAAA,MAAM,CAAA,GAAK,MAAM,CAAA,IAAgB,CAAA;AACjC,MAAA,MAAM,CAAA,GAAK,MAAM,KAAA,IAAoB,CAAA;AACrC,MAAA,MAAM,CAAA,GAAK,MAAM,MAAA,IAAqB,CAAA;AACtC,MAAA,OAAO;AAAA,QACL,EAAE,CAAA,EAAG,CAAA,GAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,EAAA,EAAI,KAAA,EAAO,KAAA,EAAM;AAAA,QAC9D;AAAA,UACE,GAAG,CAAA,GAAI,CAAA;AAAA,UACP,CAAA,EAAG,IAAI,CAAA,GAAI,CAAA;AAAA,UACX,MAAA,EAAQ,OAAA;AAAA,UACR,SAAA,EAAW,EAAA;AAAA,UACX,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,CAAA,EAAG,IAAI,CAAA,GAAI,CAAA;AAAA,UACX,GAAG,CAAA,GAAI,CAAA;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,SAAA,EAAW,EAAA;AAAA,UACX,KAAA,EAAO;AAAA,SACT;AAAA,QACA,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,GAAI,CAAA,GAAI,CAAA,EAAG,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,EAAA,EAAI,KAAA,EAAO,MAAA,EAAO;AAAA,QAChE,EAAE,GAAG,CAAA,EAAG,MAAA,EAAQ,YAAY,SAAA,EAAW,EAAA,EAAI,OAAO,UAAA,EAAW;AAAA,QAC7D,EAAE,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,QAAQ,WAAA,EAAa,SAAA,EAAW,EAAA,EAAI,KAAA,EAAO,WAAA,EAAY;AAAA,QACtE;AAAA,UACE,CAAA;AAAA,UACA,GAAG,CAAA,GAAI,CAAA;AAAA,UACP,MAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAW,EAAA;AAAA,UACX,KAAA,EAAO;AAAA,SACT;AAAA,QACA;AAAA,UACE,GAAG,CAAA,GAAI,CAAA;AAAA,UACP,GAAG,CAAA,GAAI,CAAA;AAAA,UACP,MAAA,EAAQ,cAAA;AAAA,UACR,SAAA,EAAW,EAAA;AAAA,UACX,KAAA,EAAO;AAAA;AACT,OACF;AAAA,IACF;AAAA,IAEA,KAAK,QAAA,EAAU;AACb,MAAA,MAAM,EAAA,GAAM,MAAM,EAAA,IAAiB,CAAA;AACnC,MAAA,MAAM,EAAA,GAAM,MAAM,EAAA,IAAiB,CAAA;AACnC,MAAA,MAAM,CAAA,GAAK,MAAM,CAAA,IAAgB,CAAA;AACjC,MAAA,OAAO;AAAA,QACL,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,EAAA,GAAK,CAAA,EAAG,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,EAAA,EAAI,KAAA,EAAO,KAAA,EAAM;AAAA,QAC/D,EAAE,CAAA,EAAG,EAAA,GAAK,CAAA,EAAG,CAAA,EAAG,EAAA,EAAI,MAAA,EAAQ,OAAA,EAAS,SAAA,EAAW,EAAA,EAAI,KAAA,EAAO,OAAA,EAAQ;AAAA,QACnE,EAAE,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,EAAA,GAAK,CAAA,EAAG,MAAA,EAAQ,QAAA,EAAU,SAAA,EAAW,EAAA,EAAI,KAAA,EAAO,QAAA,EAAS;AAAA,QACrE,EAAE,CAAA,EAAG,EAAA,GAAK,CAAA,EAAG,CAAA,EAAG,EAAA,EAAI,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,EAAA,EAAI,KAAA,EAAO,MAAA;AAAO,OACnE;AAAA,IACF;AAAA,IAEA,KAAK,SAAA,EAAW;AACd,MAAA,MAAM,MAAA,GAAS,kBAAA,CAAoB,KAAA,CAAM,MAAA,IAAqB,EAAE,CAAA;AAChE,MAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,EAAA,EAAI,CAAA,MAAO;AAAA,QAC5B,GAAG,EAAA,CAAG,CAAA;AAAA,QACN,GAAG,EAAA,CAAG,CAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,SAAA,EAAW,EAAA;AAAA,QACX,KAAA,EAAO,UAAU,CAAC,CAAA;AAAA,OACpB,CAAE,CAAA;AAAA,IACJ;AAAA,IAEA,KAAK,MAAA,EAAQ;AACX,MAAA,MAAM,CAAA,GAAK,MAAM,CAAA,IAAgB,CAAA;AACjC,MAAA,MAAM,CAAA,GAAK,MAAM,CAAA,IAAgB,CAAA;AACjC,MAAA,OAAO,CAAC,EAAE,CAAA,EAAG,CAAA,EAAG,MAAA,EAAQ,UAAU,SAAA,EAAW,EAAA,EAAI,KAAA,EAAO,QAAA,EAAU,CAAA;AAAA,IACpE;AAAA,IAEA;AACE,MAAA,OAAO,EAAC;AAAA;AAEd;AAMO,SAAS,iBAAA,CACd,KAAA,EACA,UAAA,EACA,YAAA,GAAuB,EAAA,EACH;AACpB,EAAA,IAAI,IAAA,GAA2B,IAAA;AAC/B,EAAA,IAAI,QAAA,GAAW,QAAA;AAEf,EAAA,KAAA,MAAW,MAAM,UAAA,EAAY;AAC3B,IAAA,MAAM,EAAA,GAAK,EAAA,CAAG,CAAA,GAAI,KAAA,CAAM,CAAA;AACxB,IAAA,MAAM,EAAA,GAAK,EAAA,CAAG,CAAA,GAAI,KAAA,CAAM,CAAA;AACxB,IAAA,MAAM,OAAO,IAAA,CAAK,IAAA,CAAK,EAAA,GAAK,EAAA,GAAK,KAAK,EAAE,CAAA;AACxC,IAAA,IAAI,IAAA,IAAQ,YAAA,IAAgB,IAAA,GAAO,QAAA,EAAU;AAC3C,MAAA,QAAA,GAAW,IAAA;AACX,MAAA,IAAA,GAAO,EAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,OAAO,IAAA;AACT;AAGA,SAAS,mBAAmB,MAAA,EAA4C;AACtE,EAAA,MAAM,SAAqC,EAAC;AAC5C,EAAA,MAAM,OAAA,GAAU,OAAO,IAAA,EAAK;AAC5B,EAAA,IAAI,CAAC,SAAS,OAAO,MAAA;AAIrB,EAAA,MAAM,SAAS,OAAA,CAAQ,KAAA,CAAM,QAAQ,CAAA,CAAE,OAAO,OAAO,CAAA;AACrD,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAI,MAAA,CAAO,MAAA,EAAQ,KAAK,CAAA,EAAG;AAC7C,IAAA,MAAM,CAAA,GAAI,UAAA,CAAW,MAAA,CAAO,CAAC,CAAC,CAAA;AAC9B,IAAA,MAAM,CAAA,GAAI,UAAA,CAAW,MAAA,CAAO,CAAA,GAAI,CAAC,CAAC,CAAA;AAClC,IAAA,IAAI,CAAC,KAAA,CAAM,CAAC,CAAA,IAAK,CAAC,KAAA,CAAM,CAAC,CAAA,EAAG,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA,EAAG,GAAG,CAAA;AAAA,EAClD;AAEA,EAAA,OAAO,MAAA;AACT;;;ACnHO,SAAS,mBAAA,CACdD,SAAAA,EACA,IAAA,EACAC,KAAAA,EACA,IAAA,EACmB;AACnB,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC5B,EAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC3B,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,KAAA,EAAO,OAAO,IAAA;AAC9B,EAAA,IAAI,GAAA;AACJ,EAAA,IAAI,OAAA,GAA0B,CAAC,IAAA,EAAM,GAAA,EAAK,MAAM,GAAA,EAAK,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,GAAG,CAAA;AACzE,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AACrD,IAAA,GAAA,GAAM;AAAA,MACJ,GAAG,KAAA,CAAM,CAAA;AAAA,MACT,GAAG,KAAA,CAAM,CAAA;AAAA,MACT,GAAG,KAAA,CAAM,KAAA;AAAA,MACT,GAAG,KAAA,CAAM;AAAA,KACX;AAAA,EACF,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,QAAA,EAAU;AACnC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,GAAA,GAAM;AAAA,MACJ,CAAA,EAAI,MAAM,EAAA,GAAgB,CAAA;AAAA,MAC1B,CAAA,EAAI,MAAM,EAAA,GAAgB,CAAA;AAAA,MAC1B,GAAG,CAAA,GAAI,CAAA;AAAA,MACP,GAAG,CAAA,GAAI;AAAA,KACT;AACA,IAAA,OAAA,GAAU,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,EAC/B,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,MAAA,EAAQ;AACjC,IAAA,MAAM,IAAA,GAAO,gBAAA,CAAiBD,SAAAA,EAAU,IAAI,CAAA;AAC5C,IAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,IAAA,GAAA,GAAM,IAAA;AACN,IAAA,OAAA,GAAU,CAAC,IAAI,CAAA;AAAA,EACjB,CAAA,MAAO;AACL,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,SAAA,GAGF;AAAA,IACF,EAAA,EAAI,EAAE,CAAA,EAAG,GAAA,CAAI,GAAG,CAAA,EAAG,GAAA,CAAI,CAAA,EAAG,MAAA,EAAQ,aAAA,EAAc;AAAA,IAChD,CAAA,EAAG,EAAE,CAAA,EAAG,GAAA,CAAI,CAAA,GAAI,GAAA,CAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,GAAA,CAAI,CAAA,EAAG,MAAA,EAAQ,WAAA,EAAY;AAAA,IACzD,EAAA,EAAI,EAAE,CAAA,EAAG,GAAA,CAAI,CAAA,GAAI,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,GAAA,CAAI,CAAA,EAAG,MAAA,EAAQ,aAAA,EAAc;AAAA,IACxD,CAAA,EAAG,EAAE,CAAA,EAAG,GAAA,CAAI,IAAI,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,GAAA,CAAI,CAAA,GAAI,GAAA,CAAI,CAAA,GAAI,CAAA,EAAG,QAAQ,WAAA,EAAY;AAAA,IACjE,EAAA,EAAI,EAAE,CAAA,EAAG,GAAA,CAAI,CAAA,GAAI,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,GAAA,CAAI,CAAA,GAAI,GAAA,CAAI,CAAA,EAAG,QAAQ,aAAA,EAAc;AAAA,IAChE,CAAA,EAAG,EAAE,CAAA,EAAG,GAAA,CAAI,IAAI,GAAA,CAAI,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,GAAA,CAAI,CAAA,GAAI,GAAA,CAAI,CAAA,EAAG,QAAQ,WAAA,EAAY;AAAA,IACjE,EAAA,EAAI,EAAE,CAAA,EAAG,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,GAAA,CAAI,CAAA,GAAI,GAAA,CAAI,CAAA,EAAG,MAAA,EAAQ,aAAA,EAAc;AAAA,IACxD,CAAA,EAAG,EAAE,CAAA,EAAG,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,GAAA,CAAI,CAAA,GAAI,GAAA,CAAI,CAAA,GAAI,CAAA,EAAG,MAAA,EAAQ,WAAA;AAAY,GAC3D;AACA,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,GAAG,CAAA;AAC9C,EAAA,MAAM,QAAA,GAAY,MAAM,QAAA,IAAuB,CAAA;AAC/C,EAAA,IACE,QAAA,KACC,OAAO,IAAA,KAAS,MAAA,IACf,OAAO,IAAA,KAAS,OAAA,IAChB,MAAA,CAAO,IAAA,KAAS,QAAA,CAAA,EAClB;AACA,IAAA,MAAM,EAAA,GAAK,GAAA,CAAI,CAAA,GAAI,GAAA,CAAI,CAAA,GAAI,CAAA;AAC3B,IAAA,MAAM,EAAA,GAAK,GAAA,CAAI,CAAA,GAAI,GAAA,CAAI,CAAA,GAAI,CAAA;AAC3B,IAAA,CAAA,CAAE,YAAA,CAAa,aAAa,CAAA,OAAA,EAAU,QAAQ,IAAI,EAAE,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,CAAG,CAAA;AAAA,EAC/D;AACA,EAAA,IAAI,IAAA,GAAO,EAAA;AACX,EAAA,KAAA,MAAW,KAAK,OAAA,EAAS;AACvB,IAAA,MAAM,CAAA,GAAI,UAAU,CAAC,CAAA;AACrB,IAAA,IAAA,IAAQ,YAAY,CAAA,CAAE,CAAA,GAAI,CAAC,CAAA,KAAA,EAAQ,CAAA,CAAE,IAAI,CAAC,CAAA;AAAA;AAAA,0BAAA,EAElB,CAAC,CAAA,gBAAA,EAAmB,SAAA,CAAU,IAAI,CAAC,CAAA,iBAAA,EAAoB,EAAE,MAAM,CAAA,IAAA,CAAA;AAAA,EACzF;AACA,EAAA,CAAA,CAAE,SAAA,GAAY,IAAA;AACd,EAAA,OAAO,CAAA;AACT;AAEO,SAAS,oBAAA,CACdA,SAAAA,EACA,IAAA,EACAC,KAAAA,EACA,IAAA,EACmB;AACnB,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC5B,EAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC3B,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,KAAA,EAAO,OAAO,IAAA;AAC9B,EAAA,MAAM,MAAA,GAAS,eAAA,CAAgB,MAAA,EAAQ,KAAK,CAAA;AAC5C,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,EAAA,IAAI,IAAA,GAAsB,IAAA;AAC1B,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AACrD,IAAA,IAAA,GAAQ,MAAM,CAAA,GAAe,EAAA;AAAA,EAC/B,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,QAAA,EAAU;AACnC,IAAA,IAAA,GAAQ,KAAA,CAAM,EAAA,GAAiB,KAAA,CAAM,CAAA,GAAe,EAAA;AAAA,EACtD,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,MAAA,EAAQ;AACjC,IAAA,MAAM,IAAA,GAAO,gBAAA,CAAiBD,SAAAA,EAAU,IAAI,CAAA;AAC5C,IAAA,IAAI,IAAA,EAAM,IAAA,GAAO,IAAA,CAAK,CAAA,GAAI,EAAA;AAAA,EAC5B,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,SAAA,EAAW;AACpC,IAAA,MAAM,OAAO,kBAAA,CAAmB,MAAA,CAAO,KAAA,CAAM,MAAA,IAAU,EAAE,CAAC,CAAA;AAC1D,IAAA,IAAI,IAAA,EAAM,IAAA,GAAO,IAAA,CAAK,CAAA,GAAI,EAAA;AAAA,EAC5B,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,MAAA,EAAQ;AACjC,IAAA,MAAM,IAAA,GAAO,gBAAA,CAAiBA,SAAAA,EAAU,IAAI,CAAA;AAC5C,IAAA,IAAI,IAAA,EAAM,IAAA,GAAO,IAAA,CAAK,CAAA,GAAI,EAAA;AAAA,EAC5B;AACA,EAAA,IAAI,IAAA,KAAS,MAAM,OAAO,IAAA;AAE1B,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,GAAG,CAAA;AAC9C,EAAA,MAAM,QAAA,GAAY,MAAM,QAAA,IAAuB,CAAA;AAC/C,EAAA,IAAI,QAAA;AACF,IAAA,CAAA,CAAE,YAAA,CAAa,WAAA,EAAa,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAA,EAAI,OAAO,CAAC,CAAA,CAAA,EAAI,MAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAA;AAC3E,EAAA,CAAA,CAAE,SAAA,GAAY;AAAA,cAAA,EACA,MAAA,CAAO,CAAC,CAAA,MAAA,EAAS,MAAA,CAAO,CAAC,SAAS,MAAA,CAAO,CAAC,CAAA,MAAA,EAAS,IAAA,GAAO,CAAC,CAAA;AAAA,gBAAA,EACzD,OAAO,CAAC,CAAA,MAAA,EAAS,IAAI,CAAA,uFAAA,EAA0F,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,aAAA,EACjI,MAAA,CAAO,CAAA,GAAI,EAAE,CAAA,KAAA,EAAQ,IAAA,GAAO,CAAC,CAAA,wGAAA,EAA2G,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,EAAA,CAAA;AAEzK,EAAA,OAAO,CAAA;AACT;AAEO,SAAS,gBAAA,CACd,IAAA,EACAC,KAAAA,EACA,IAAA,EACmB;AACnB,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC5B,EAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC3B,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,KAAA,EAAO,OAAO,IAAA;AAC9B,EAAA,IACE,OAAO,IAAA,KAAS,MAAA,IAChB,OAAO,IAAA,KAAS,QAAA,IAChB,OAAO,IAAA,KAAS,OAAA;AAEhB,IAAA,OAAO,IAAA;AACT,EAAA,MAAM,MAAA,GAAS,cAAA,CAAe,MAAA,EAAQ,KAAK,CAAA;AAC3C,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,GAAG,CAAA;AAC9C,EAAA,KAAA,MAAW,KAAK,MAAA,EAAQ;AACtB,IAAA,CAAA,CAAE,aAAa,CAAA,YAAA,EAAe,CAAA,CAAE,CAAC,CAAA,MAAA,EAAS,EAAE,CAAC,CAAA;AAAA,uCAAA,EACR,SAAA,CAAU,IAAI,CAAC,CAAA,eAAA,EAAkB,EAAE,MAAM,CAAA,8BAAA,CAAA;AAAA,EAChF;AACA,EAAA,OAAO,CAAA;AACT;AAEO,SAAS,yBAAA,CACd,IAAA,EACAA,KAAAA,EACA,IAAA,EACmB;AACnB,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC5B,EAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC3B,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,KAAA,EAAO,OAAO,IAAA;AAC9B,EAAA,IAAI,OAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,IAAA,KAAS,SAAS,OAAO,IAAA;AAC9D,EAAA,MAAM,MAAA,GACJ,MAAA,CAAO,IAAA,KAAS,MAAA,GACZ,iBAAA,CAAkB,KAAA,EAAiCA,KAAAA,EAAM,IAAI,CAAA,GAC7D,kBAAA,CAAmB,KAAA,EAAkCA,KAAAA,EAAM,IAAI,CAAA;AACrE,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,EAAA,MAAM,IAAA,GAAA,CAAQ,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,EAAA,IAAM,CAAA;AACvC,EAAA,MAAM,IAAA,GAAA,CAAQ,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,EAAA,IAAM,CAAA;AACvC,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,GAAG,CAAA;AAC9C,EAAA,CAAA,CAAE,SAAA,GAAY;AAAA,aAAA,EACD,OAAO,EAAA,GAAK,CAAC,CAAA,KAAA,EAAQ,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA;AAAA,iDAAA,EAEE,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,aAAA,EACnD,OAAO,EAAA,GAAK,CAAC,CAAA,KAAA,EAAQ,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA;AAAA,+CAAA,EAEA,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,gBAAA,EAC9C,IAAI,SAAS,IAAI,CAAA;AAAA;AAAA,yCAAA,EAEQ,SAAA,CAAU,IAAI,CAAC,CAAA;AAAA,EAAA,CAAA;AAExD,EAAA,OAAO,CAAA;AACT;AAEO,SAAS,0BAAA,CACd,IAAA,EACAA,KAAAA,EACA,IAAA,EACmB;AACnB,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC5B,EAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC3B,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,KAAA,EAAO,OAAO,IAAA;AAC9B,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,SAAA,EAAW,OAAO,IAAA;AACtC,EAAA,MAAM,MAAA,GAAS,OAAO,KAAA,CAAM,MAAA,IAAU,EAAE,CAAA,CACrC,IAAA,EAAK,CACL,KAAA,CAAM,KAAK,CAAA;AACd,EAAA,MAAM,SAAgD,EAAC;AACvD,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,MAAA,EAAQ,KAAK,CAAA,EAAG;AACzC,IAAA,MAAM,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AAC9C,IAAA,IAAI,CAAC,OAAO,QAAA,CAAS,CAAC,KAAK,CAAC,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,EAAG;AAChD,IAAA,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA;AAAA,EACzB;AACA,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,GAAG,CAAA;AAC9C,EAAA,IAAI,IAAA,GAAO,EAAA;AACX,EAAA,IAAI,MAAA,CAAO,UAAU,CAAA,EAAG;AACtB,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,MAAA,EAAQ,KAAK,CAAA,EAAG;AACzC,MAAA,MAAM,CAAA,GAAI,OAAO,CAAC,CAAA;AAClB,MAAA,MAAM,CAAA,GAAI,MAAA,CAAA,CAAQ,CAAA,GAAI,CAAA,IAAK,OAAO,MAAM,CAAA;AACxC,MAAA,MAAM,EAAA,GAAA,CAAM,CAAA,CAAE,CAAA,GAAI,CAAA,CAAE,CAAA,IAAK,CAAA;AACzB,MAAA,MAAM,EAAA,GAAA,CAAM,CAAA,CAAE,CAAA,GAAI,CAAA,CAAE,CAAA,IAAK,CAAA;AACzB,MAAA,IAAA,IAAQ,oCAAoC,SAAA,CAAU,IAAI,CAAC,CAAA,oBAAA,EAAuB,EAAE,CAAC,CAAA;AAAA,oBAAA,EACrE,EAAE,SAAS,EAAE,CAAA;AAAA,iBAAA,EAChB,EAAE,CAAA,KAAA,EAAQ,EAAA,GAAK,CAAC,CAAA;AAAA,UAAA,CAAA;AAAA,IAE/B;AAAA,EACF;AACA,EAAA,KAAA,MAAW,KAAK,MAAA,EAAQ;AACtB,IAAA,MAAM,SAAA,GAAY,OAAO,MAAA,GAAS,CAAA;AAClC,IAAA,IAAA,IAAQ,CAAA,YAAA,EAAe,CAAA,CAAE,CAAC,CAAA,MAAA,EAAS,EAAE,CAAC,CAAA;AAAA,uCAAA,EACD,SAAA,CAAU,IAAI,CAAC,CAAA,qBAAA,EAAwB,EAAE,CAAC,CAAA;AAAA;AAAA,aAAA,EAEpE,SAAA,GAAY,qEAAmB,iCAAQ,CAAA;AAAA,aAAA,CAAA;AAAA,EAEpD;AACA,EAAA,CAAA,CAAE,SAAA,GAAY,IAAA;AACd,EAAA,OAAO,CAAA;AACT;AAEO,SAAS,iBAAA,CACd,iBAAA,EACAA,KAAAA,EACA,IAAA,EACA,gBAAA,EACmB;AACnB,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,GAAG,CAAA;AAC9C,EAAA,IAAI,IAAA,GAAO,EAAA;AACX,EAAA,KAAA,MAAW,MAAA,IAAU,IAAA,CAAK,MAAA,EAAO,EAAG;AAClC,IAAA,IAAI,MAAA,CAAO,OAAO,iBAAA,EAAmB;AAErC,IAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AACvD,IAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,MAAA,CAAO,EAAE,CAAA;AAChC,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,KAAA,CAAM,OAAA,EAAS;AAC9B,IAAA,MAAM,MAAA,GAAS,eAAA,CAAgB,MAAA,EAAQ,KAAgC,CAAA;AACvE,IAAA,KAAA,MAAW,KAAK,MAAA,EAAQ;AACtB,MAAA,MAAM,WACJ,gBAAA,EAAkB,SAAA,KAAc,OAAO,EAAA,IACvC,gBAAA,EAAkB,WAAW,CAAA,CAAE,MAAA;AACjC,MAAA,IAAI,QAAA,EAAU;AAEZ,QAAA,IAAA,IAAQ,CAAA,YAAA,EAAe,CAAA,CAAE,CAAC,CAAA,MAAA,EAAS,EAAE,CAAC,CAAA,0GAAA,CAAA;AAEtC,QAAA,IAAA,IAAQ,CAAA,YAAA,EAAe,CAAA,CAAE,CAAC,CAAA,MAAA,EAAS,EAAE,CAAC,CAAA,2GAAA,CAAA;AAAA,MACxC,CAAA,MAAO;AAEL,QAAA,IAAA,IAAQ,CAAA,YAAA,EAAe,CAAA,CAAE,CAAC,CAAA,MAAA,EAAS,EAAE,CAAC,CAAA,2GAAA,CAAA;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AACA,EAAA,CAAA,CAAE,SAAA,GAAY,IAAA;AACd,EAAA,OAAO,CAAA;AACT;AAEO,SAAS,sBAAA,CACdD,SAAAA,EACA,IAAA,EACAC,KAAAA,EACA,IAAA,EACmB;AACnB,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC5B,EAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC3B,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,KAAA,EAAO,OAAO,IAAA;AAC9B,EAAA,IAAI,GAAA,GAA6D,IAAA;AACjE,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AACrD,IAAA,GAAA,GAAM;AAAA,MACJ,CAAA,EAAI,MAAM,CAAA,GAAe,CAAA;AAAA,MACzB,CAAA,EAAI,MAAM,CAAA,GAAe,CAAA;AAAA,MACzB,CAAA,EAAI,MAAM,KAAA,GAAmB,CAAA;AAAA,MAC7B,CAAA,EAAI,MAAM,MAAA,GAAoB;AAAA,KAChC;AAAA,EACF,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,QAAA,EAAU;AACnC,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,GAAA,GAAM;AAAA,MACJ,CAAA,EAAI,KAAA,CAAM,EAAA,GAAgB,CAAA,GAAI,CAAA;AAAA,MAC9B,CAAA,EAAI,KAAA,CAAM,EAAA,GAAgB,CAAA,GAAI,CAAA;AAAA,MAC9B,CAAA,EAAG,IAAI,CAAA,GAAI,CAAA;AAAA,MACX,CAAA,EAAG,IAAI,CAAA,GAAI;AAAA,KACb;AAAA,EACF,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,MAAA,EAAQ;AACjC,IAAA,MAAM,IAAA,GAAO,gBAAA,CAAiBD,SAAAA,EAAU,IAAI,CAAA;AAC5C,IAAA,IAAI,IAAA;AACF,MAAA,GAAA,GAAM,EAAE,CAAA,EAAG,IAAA,CAAK,CAAA,GAAI,CAAA,EAAG,GAAG,IAAA,CAAK,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,KAAK,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAE;AAAA,EACvE,WAAW,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AAC5D,IAAA,MAAM,MAAA,GACJ,MAAA,CAAO,IAAA,KAAS,MAAA,GACZ,iBAAA,CAAkB,KAAA,EAAiCC,KAAAA,EAAM,IAAI,CAAA,GAC7D,kBAAA,CAAmB,KAAA,EAAkCA,KAAAA,EAAM,IAAI,CAAA;AACrE,IAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,IAAA,GAAA,GAAM;AAAA,MACJ,GAAG,IAAA,CAAK,GAAA,CAAI,OAAO,EAAA,EAAI,MAAA,CAAO,EAAE,CAAA,GAAI,CAAA;AAAA,MACpC,GAAG,IAAA,CAAK,GAAA,CAAI,OAAO,EAAA,EAAI,MAAA,CAAO,EAAE,CAAA,GAAI,CAAA;AAAA,MACpC,GAAG,IAAA,CAAK,GAAA,CAAI,OAAO,EAAA,GAAK,MAAA,CAAO,EAAE,CAAA,GAAI,CAAA;AAAA,MACrC,GAAG,IAAA,CAAK,GAAA,CAAI,OAAO,EAAA,GAAK,MAAA,CAAO,EAAE,CAAA,GAAI;AAAA,KACvC;AAAA,EACF,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,SAAA,EAAW;AACpC,IAAA,MAAM,OAAO,kBAAA,CAAmB,MAAA,CAAO,KAAA,CAAM,MAAA,IAAU,EAAE,CAAC,CAAA;AAC1D,IAAA,IAAI,IAAA;AACF,MAAA,GAAA,GAAM,EAAE,CAAA,EAAG,IAAA,CAAK,CAAA,GAAI,CAAA,EAAG,GAAG,IAAA,CAAK,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,KAAK,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAE;AAAA,EACvE,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,MAAA,EAAQ;AACjC,IAAA,MAAM,IAAA,GAAO,gBAAA,CAAiBD,SAAAA,EAAU,IAAI,CAAA;AAC5C,IAAA,IAAI,IAAA;AACF,MAAA,GAAA,GAAM,EAAE,CAAA,EAAG,IAAA,CAAK,CAAA,GAAI,CAAA,EAAG,GAAG,IAAA,CAAK,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,KAAK,CAAA,GAAI,CAAA,EAAG,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAE;AAAA,EACvE;AACA,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AACpD,EAAA,IAAA,CAAK,YAAA,CAAa,GAAA,EAAK,MAAA,CAAO,GAAA,CAAI,CAAC,CAAC,CAAA;AACpC,EAAA,IAAA,CAAK,YAAA,CAAa,GAAA,EAAK,MAAA,CAAO,GAAA,CAAI,CAAC,CAAC,CAAA;AACpC,EAAA,IAAA,CAAK,YAAA,CAAa,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,CAAC,CAAC,CAAA;AACxC,EAAA,IAAA,CAAK,YAAA,CAAa,QAAA,EAAU,MAAA,CAAO,GAAA,CAAI,CAAC,CAAC,CAAA;AACzC,EAAA,IAAA,CAAK,SAAA,CAAU,IAAI,0BAA0B,CAAA;AAC7C,EAAA,OAAO,IAAA;AACT;;;AC1TA,IAAI,WAAA,GAAqC,IAAA;AACzC,IAAI,aAAA,GAA4C,IAAA;AAEhD,eAAe,YAAA,CACb,MACA,GAAA,EACe;AACf,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,MAAM,OAAO,mBAAmB,CAAA;AAEvD,EAAA,aAAA,GAAgB,UAAA,CAAW,MAAM,GAAA,EAAK,EAAE,QAAQ,EAAE,QAAA,EAAU,IAAA,EAAK,EAAG,CAAA;AACtE;AAEO,SAAS,WAAA,CACdA,WACA,GAAA,EACM;AACN,EAAA,IAAI,CAACA,SAAAA,EAAU;AACf,EAAA,MAAM,SAASA,SAAAA,CAAS,aAAA;AACxB,EAAA,IAAI,CAAC,MAAA,EAAQ;AACb,EAAA,WAAA,CAAYA,SAAQ,CAAA;AACpB,EAAAA,SAAAA,CAAS,MAAM,UAAA,GAAa,QAAA;AAC5B,EAAA,WAAA,GAAc,QAAA,CAAS,cAAc,KAAK,CAAA;AAC1C,EAAA,MAAM,EAAA,GACJ,GAAA,CAAI,MAAA,CAAO,UAAA,IAAc,GAAA,CAAI,OAAO,UAAA,KAAe,aAAA,GAC/C,GAAA,CAAI,MAAA,CAAO,UAAA,GACX,aAAA;AACN,EAAA,WAAA,CAAY,KAAA,CAAM,OAAA,GAAU,CAAA,qCAAA,EAAwC,GAAA,CAAI,MAAA,CAAO,KAAK,CAAA,UAAA,EAAa,GAAA,CAAI,MAAA,CAAO,MAAM,CAAA,cAAA,EAAiB,EAAE,CAAA,2BAAA,CAAA;AACrI,EAAA,MAAA,CAAO,MAAM,QAAA,GAAW,UAAA;AACxB,EAAA,MAAA,CAAO,YAAY,WAAW,CAAA;AAC9B,EAAA,KAAK,YAAA,CAAa,aAAa,GAAG,CAAA;AACpC;AAEO,SAAS,YAAYA,SAAAA,EAAsC;AAChE,EAAA,IAAIA,SAAAA,EAAUA,SAAAA,CAAS,KAAA,CAAM,UAAA,GAAa,EAAA;AAG1C,EAAA,aAAA,EAAe,OAAA,EAAQ;AACvB,EAAA,aAAA,GAAgB,IAAA;AAChB,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,WAAA,CAAY,MAAA,EAAO;AACnB,IAAA,WAAA,GAAc,IAAA;AAAA,EAChB;AACF;;;ACoDA,IAAM,WAAA,GAAc,EAAA;AAEpB,IAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AA0CzB,SAAS,YAAA,CAAa,MAA0B,GAAA,EAA8B;AAC5E,EAAA,IAAI,CAAC,IAAA,IAAQ,IAAA,KAAS,MAAA,EAAQ,OAAO,EAAA;AACrC,EAAA,MAAM,eAAe,IAAA,KAAS,aAAA;AAC9B,EAAA,MAAM,QAAA,GAAW,SAAS,QAAA,IAAY,YAAA;AACtC,EAAA,IAAI,QAAA,EAAU,OAAO,CAAA,cAAA,EAAiB,IAAI,CAAA,CAAA,CAAA;AAC1C,EAAA,MAAM,MAAA,GAAS,YAAY,IAAI,CAAA,CAAA;AAC/B,EAAA,OAAO,QAAQ,OAAA,GAAU,CAAA,KAAA,EAAQ,MAAM,CAAA,OAAA,CAAA,GAAY,QAAQ,MAAM,CAAA,CAAA,CAAA;AACnE;AAiCA,IAAI,SAAA,GAA8B,IAAA;AAClC,IAAI,WAAA,GAAkC,IAAA;AACtC,IAAI,YAAA,GAAoC,IAAA;AACxC,IAAI,iBAAA,GAA8C,IAAA;AAClD,IAAI,eAAA,GAA0C,IAAA;AAC9C,IAAI,WAAA,GAAkC,IAAA;AACtC,IAAI,YAAA,GAAoC,IAAA;AACxC,IAAI,mBAAA,GAAsB,KAAA;AAC1B,IAAI,QAAA,GAAiC,IAAA;AACrC,IAAI,gBAAA,GAAkC,IAAA;AACtC,IAAI,UAAA,GAAa,CAAA;AAEV,SAAS,WAAW,IAAA,EAA2B;AACpD,EAAA,QAAA,GAAW,IAAA;AACX,EAAA,IAAA,CAAK,gBAAA,CAAiB,SAAS,aAAa,CAAA;AAC5C,EAAA,IAAA,CAAK,gBAAA,CAAiB,aAAa,WAAW,CAAA;AAC9C,EAAA,IAAA,CAAK,gBAAA,CAAiB,aAAa,WAAW,CAAA;AAC9C,EAAA,IAAA,CAAK,gBAAA,CAAiB,cAAc,YAAY,CAAA;AAChD,EAAA,IAAA,CAAK,gBAAA,CAAiB,eAAe,aAAa,CAAA;AAClD,EAAA,IAAA,CAAK,iBAAiB,OAAA,EAAS,aAAA,EAAe,EAAE,OAAA,EAAS,OAAO,CAAA;AAChE,EAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,WAAW,CAAA;AAClD,EAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,SAAS,CAAA;AAC9C,EAAA,SAAA,CAAU,MAAM,CAAA;AAChB,EAAA,MAAA,EAAO;AACT;AAEA,SAAS,cAAc,CAAA,EAAqB;AAC1C,EAAA,IAAI,CAAC,CAAA,CAAE,OAAA,IAAW,CAAC,EAAE,OAAA,EAAS;AAC9B,EAAA,CAAA,CAAE,cAAA,EAAe;AACjB,EAAA,MAAM,IAAA,GAAO,QAAA,EAAU,OAAA,CAAQ,qBAAqB,CAAA;AACpD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,UAAA,GAAa,IAAA,CAAK,GAAA;AAAA,MAChB,GAAA;AAAA,MACA,IAAA,CAAK,IAAI,CAAA,EAAG,UAAA,IAAc,EAAE,MAAA,GAAS,CAAA,GAAI,GAAA,GAAM,CAAA,GAAI,GAAA,CAAI;AAAA,KACzD;AACA,IAAA,MAAA,EAAO;AACP,IAAA;AAAA,EACF;AACA,EAAA,MAAM,QAAA,GAAW,KAAK,qBAAA,EAAsB;AAC5C,EAAA,MAAM,QAAA,GAAW,CAAA,CAAE,OAAA,GAAU,QAAA,CAAS,OAAO,IAAA,CAAK,UAAA;AAClD,EAAA,MAAM,QAAA,GAAW,CAAA,CAAE,OAAA,GAAU,QAAA,CAAS,MAAM,IAAA,CAAK,SAAA;AACjD,EAAA,MAAM,GAAA,GAAM,UAAA;AACZ,EAAA,UAAA,GAAa,IAAA,CAAK,GAAA;AAAA,IAChB,GAAA;AAAA,IACA,IAAA,CAAK,IAAI,CAAA,EAAG,UAAA,IAAc,EAAE,MAAA,GAAS,CAAA,GAAI,GAAA,GAAM,CAAA,GAAI,GAAA,CAAI;AAAA,GACzD;AACA,EAAA,MAAM,QAAQ,UAAA,GAAa,GAAA;AAC3B,EAAA,MAAA,EAAO;AACP,EAAA,IAAA,CAAK,UAAA,GAAa,QAAA,GAAW,KAAA,IAAS,CAAA,CAAE,UAAU,QAAA,CAAS,IAAA,CAAA;AAC3D,EAAA,IAAA,CAAK,SAAA,GAAY,QAAA,GAAW,KAAA,IAAS,CAAA,CAAE,UAAU,QAAA,CAAS,GAAA,CAAA;AAC5D;AAEA,SAAS,cAAc,CAAA,EAAqB;AAC1C,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,MAAM,QAAA,GAAW,MAAA,EAAQ,OAAA,CAAoB,sBAAsB,CAAA;AACnE,EAAA,IAAI,CAAC,QAAA,EAAU;AACf,EAAA,MAAM,EAAA,GAAK,QAAA,CAAS,OAAA,CAAQ,MAAA,IAAU,EAAA;AACtC,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,QAAA,CAAS,OAAA,CAAQ,eAAe,IAAI,CAAA;AACvD,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,IAAO,GAAA,GAAM,CAAA,EAAG;AACrB,EAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAC/C,EAAA,IAAI,CAAC,EAAA,IAAM,EAAA,CAAG,IAAA,KAAS,SAAA,EAAW;AAClC,EAAA,MAAMC,QAAO,kBAAA,EAAmB;AAChC,EAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,EAAE,CAAA;AACzB,EAAA,IAAI,CAAC,KAAA,EAAO;AACZ,EAAA,MAAM,MAAA,GAAS,OAAO,KAAA,CAAM,MAAA,IAAU,EAAE,CAAA,CACrC,IAAA,EAAK,CACL,KAAA,CAAM,KAAK,CAAA;AACd,EAAA,IAAI,MAAA,CAAO,UAAU,CAAA,EAAG;AACxB,EAAA,CAAA,CAAE,cAAA,EAAe;AACjB,EAAA,MAAA,CAAO,MAAA,CAAO,KAAK,CAAC,CAAA;AACpB,EAAA,qBAAA,CAAsB,IAAI,EAAE,MAAA,EAAQ,OAAO,IAAA,CAAK,GAAG,GAAG,CAAA;AACxD;AAEA,SAAS,YAAY,CAAA,EAAqB;AACxC,EAAA,MAAM,EAAA,GAAK,aAAA,CAAc,CAAA,CAAE,MAAM,CAAA;AACjC,EAAA,IAAI,OAAO,gBAAA,EAAkB;AAC3B,IAAA,gBAAA,GAAmB,EAAA;AACnB,IAAA,MAAA,EAAO;AAAA,EACT;AACF;AAEA,SAAS,YAAA,GAAqB;AAC5B,EAAA,IAAI,qBAAqB,IAAA,EAAM;AAC7B,IAAA,gBAAA,GAAmB,IAAA;AACnB,IAAA,MAAA,EAAO;AAAA,EACT;AACF;AAEA,SAAS,QAAA,CACP,SACA,OAAA,EACiC;AACjC,EAAA,IAAI,CAAC,UAAU,OAAO,IAAA;AACtB,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,MAAM,IAAA,GAAO,SAAS,qBAAA,EAAsB;AAC5C,EAAA,MAAM,EAAA,GAAK,GAAA,CAAI,MAAA,CAAO,KAAA,GAAQ,IAAA,CAAK,KAAA;AACnC,EAAA,MAAM,EAAA,GAAK,GAAA,CAAI,MAAA,CAAO,MAAA,GAAS,IAAA,CAAK,MAAA;AACpC,EAAA,OAAO,SAAA,CAAU;AAAA,IACf,CAAA,EAAA,CAAI,OAAA,GAAU,IAAA,CAAK,IAAA,IAAQ,EAAA;AAAA,IAC3B,CAAA,EAAA,CAAI,OAAA,GAAU,IAAA,CAAK,GAAA,IAAO;AAAA,GAC3B,CAAA;AACH;AAEA,SAAS,cAAc,MAAA,EAA2C;AAChE,EAAA,IAAI,IAAA,GAAO,MAAA;AACX,EAAA,OAAO,IAAA,IAAQ,SAAS,QAAA,EAAU;AAChC,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,YAAA,GAAe,cAAc,CAAA;AAC7C,IAAA,IAAI,IAAI,OAAO,EAAA;AACf,IAAA,IAAA,GAAO,IAAA,CAAK,aAAA;AAAA,EACd;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,cAAc,CAAA,EAAqB;AAC1C,EAAA,IAAI,SAAA,IAAa,eAAe,YAAA,EAAc;AAC9C,EAAA,IAAI,mBAAA,EAAqB;AACvB,IAAA,mBAAA,GAAsB,KAAA;AACtB,IAAA;AAAA,EACF;AACA,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,MAAM,eAAA,GAAkB,MAAA,EAAQ,OAAA,CAAoB,mBAAmB,CAAA;AACvE,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,IAAA,MAAMC,GAAAA,GAAK,eAAA,CAAgB,OAAA,CAAQ,MAAA,IAAU,EAAA;AAC7C,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,eAAA,CAAgB,OAAA,CAAQ,cAAc,IAAI,CAAA;AAClE,IAAA,MAAM,MAAM,MAAA,EAAO;AACnB,IAAA,IAAI,CAAC,GAAA,IAAO,QAAA,GAAW,CAAA,EAAG;AAC1B,IAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAOA,GAAE,CAAA;AAC/C,IAAA,IAAI,CAAC,EAAA,IAAM,EAAA,CAAG,IAAA,KAAS,SAAA,EAAW;AAClC,IAAA,MAAMD,QAAO,kBAAA,EAAmB;AAChC,IAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAIC,GAAE,CAAA;AACzB,IAAA,IAAI,CAAC,KAAA,EAAO;AACZ,IAAA,MAAM,MAAA,GAAS,OAAO,KAAA,CAAM,MAAA,IAAU,EAAE,CAAA,CACrC,IAAA,EAAK,CACL,KAAA,CAAM,KAAK,CAAA;AACd,IAAA,MAAM,CAAA,GAAI,MAAA,CAAO,QAAQ,CAAA,EAAG,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA,IAAK,EAAC;AACvD,IAAA,MAAM,CAAA,GACJ,MAAA,CAAA,CAAQ,QAAA,GAAW,CAAA,IAAK,MAAA,CAAO,MAAM,CAAA,EAAG,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,KAAK,EAAC;AACrE,IAAA,IAAI,CAAA,CAAE,MAAA,KAAW,CAAA,IAAK,CAAA,CAAE,WAAW,CAAA,EAAG;AACtC,IAAA,MAAM,MAAM,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAA,IAAK,CAAA;AAC3B,IAAA,MAAM,MAAM,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAA,IAAK,CAAA;AAC3B,IAAA,MAAA,CAAO,MAAA,CAAO,QAAA,GAAW,CAAA,EAAG,CAAA,EAAG,GAAG,EAAA,CAAG,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,EAAI,EAAA,CAAG,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAE,CAAA;AAClE,IAAA,qBAAA,CAAsBA,KAAI,EAAE,MAAA,EAAQ,OAAO,IAAA,CAAK,GAAG,GAAG,CAAA;AACtD,IAAA;AAAA,EACF;AACA,EAAA,IACE,MAAA,EAAQ,OAAA;AAAA,IACN;AAAA,GACF;AAEA,IAAA;AACF,EAAA,MAAM,EAAA,GAAK,aAAA,CAAc,CAAA,CAAE,MAAM,CAAA;AACjC,EAAA,IAAI,EAAA,EAAI;AACN,IAAA,MAAM,aAAa,CAAA,CAAE,MAAA,GAAS,KAAM,mBAAA,CAAoB,EAAE,GAAG,EAAA,IAAM,EAAA;AACnE,IAAA,IAAI,CAAA,CAAE,QAAA,IAAY,CAAA,CAAE,OAAA,IAAW,EAAE,OAAA,EAAS;AACxC,MAAA,YAAA,CAAa,kBAAA,CAAmB,YAAA,EAAa,EAAG,UAAU,CAAC,CAAA;AAAA,IAC7D,CAAA,MAAO;AACL,MAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAW,YAAY,CAAA;AAAA,IACzD;AAAA,EACF,CAAA,MAAA,IAAW,EAAE,MAAA,KAAW,QAAA,eAAuB,EAAE,IAAA,EAAM,QAAQ,CAAA;AACjE;AAEA,SAAS,YAAY,CAAA,EAAqB;AACxC,EAAA,IAAI,CAAA,CAAE,WAAW,CAAA,EAAG;AACpB,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AAEV,EAAA,IAAI,MAAA,EAAQ,OAAA,CAAoB,mBAAmB,CAAA,EAAG;AACpD,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,YAAA,GAAe,MAAA,EAAQ,OAAA,CAAoB,sBAAsB,CAAA;AACvE,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAMA,GAAAA,GAAK,YAAA,CAAa,OAAA,CAAQ,MAAA,IAAU,EAAA;AAC1C,IAAA,MAAM,MAAA,GAAS,aAAa,OAAA,CAAQ,YAAA;AACpC,IAAA,MAAMD,QAAO,kBAAA,EAAmB;AAChC,IAAA,MAAME,QAAAA,GAAUF,KAAAA,CAAK,GAAA,CAAIC,GAAE,CAAA;AAC3B,IAAA,MAAME,OAAAA,GAAS,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAOF,GAAE,CAAA;AACnD,IAAA,IAAI,CAACC,QAAAA,IAAW,CAACC,OAAAA,EAAQ;AACzB,IAAA,MAAM,EAAA,GAAkB;AAAA,MACtB,SAAA,EAAWF,GAAAA;AAAA,MACX,MAAA;AAAA,MACA,aAAa,CAAA,CAAE,OAAA;AAAA,MACf,aAAa,CAAA,CAAE,OAAA;AAAA,MACf,MAAA,EAAQ,CAAA;AAAA,MACR,MAAA,EAAQ,CAAA;AAAA,MACR,MAAA,EAAQ,CAAA;AAAA,MACR,MAAA,EAAQ,CAAA;AAAA,MACR,MAAA,EAAQ;AAAA,KACV;AACA,IAAA,IAAIE,OAAAA,CAAO,IAAA,KAAS,MAAA,IAAUA,OAAAA,CAAO,SAAS,OAAA,EAAS;AACrD,MAAA,EAAA,CAAG,SAASD,QAAAA,CAAQ,CAAA;AACpB,MAAA,EAAA,CAAG,SAASA,QAAAA,CAAQ,CAAA;AACpB,MAAA,EAAA,CAAG,SAASA,QAAAA,CAAQ,KAAA;AACpB,MAAA,EAAA,CAAG,SAASA,QAAAA,CAAQ,MAAA;AACpB,MAAA,EAAA,CAAG,SAAS,EAAA,CAAG,MAAA,GAAS,KAAK,GAAA,CAAI,CAAA,EAAG,GAAG,MAAM,CAAA;AAAA,IAC/C,CAAA,MAAA,IAAWC,OAAAA,CAAO,IAAA,KAAS,QAAA,EAAU;AACnC,MAAA,EAAA,CAAG,UAAUD,QAAAA,CAAQ,EAAA;AACrB,MAAA,EAAA,CAAG,UAAUA,QAAAA,CAAQ,EAAA;AACrB,MAAA,EAAA,CAAG,SAASA,QAAAA,CAAQ,CAAA;AAAA,IACtB,CAAA,MAAA,IAAWC,OAAAA,CAAO,IAAA,KAAS,MAAA,EAAQ;AACjC,MAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,QAAA,EAAUF,GAAE,CAAA;AAC1C,MAAA,EAAA,CAAG,MAAA,GAAS,IAAA,EAAM,CAAA,IAAMC,QAAAA,CAAQ,CAAA;AAChC,MAAA,EAAA,CAAG,MAAA,GAAS,IAAA,EAAM,CAAA,IAAMA,QAAAA,CAAQ,CAAA;AAChC,MAAA,EAAA,CAAG,MAAA,GAAS,MAAM,CAAA,IAAK,GAAA;AACvB,MAAA,EAAA,CAAG,MAAA,GAAS,IAAA,EAAM,CAAA,IAAMA,QAAAA,CAAQ,QAAA;AAChC,MAAA,EAAA,CAAG,gBAAgBA,QAAAA,CAAQ,QAAA;AAC3B,MAAA,EAAA,CAAG,SAAS,EAAA,CAAG,MAAA,GAAS,KAAK,GAAA,CAAI,CAAA,EAAG,GAAG,MAAM,CAAA;AAAA,IAC/C,CAAA,MAAO;AACL,MAAA;AAAA,IACF;AACA,IAAA,WAAA,GAAc,EAAA;AACd,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAWD,KAAI,CAAA;AAC/C,IAAA,MAAA,EAAO;AACP,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,YAAA,GAAe,MAAA,EAAQ,OAAA,CAAoB,sBAAsB,CAAA;AACvE,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAMA,GAAAA,GAAK,YAAA,CAAa,OAAA,CAAQ,MAAA,IAAU,EAAA;AAC1C,IAAA,MAAM,EAAA,GAAK,MAAA,CAAO,YAAA,CAAa,OAAA,CAAQ,eAAe,IAAI,CAAA;AAC1D,IAAA,MAAMD,QAAO,kBAAA,EAAmB;AAChC,IAAA,MAAME,QAAAA,GAAUF,KAAAA,CAAK,GAAA,CAAIC,GAAE,CAAA;AAC3B,IAAA,IAAI,CAACC,QAAAA,IAAW,EAAA,GAAK,CAAA,EAAG;AACxB,IAAA,eAAA,GAAkB;AAAA,MAChB,SAAA,EAAWD,GAAAA;AAAA,MACX,WAAA,EAAa,EAAA;AAAA,MACb,cAAA,EAAgB,MAAA,CAAOC,QAAAA,CAAQ,MAAA,IAAU,EAAE;AAAA,KAC7C;AACA,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAWD,KAAI,CAAA;AAC/C,IAAA,MAAA,EAAO;AACP,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,cAAA,GAAiB,MAAA,EAAQ,OAAA,CAAoB,wBAAwB,CAAA;AAC3E,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAMA,GAAAA,GAAK,cAAA,CAAe,OAAA,CAAQ,MAAA,IAAU,EAAA;AAC5C,IAAA,MAAM,GAAA,GACJ,cAAA,CAAe,OAAA,CAAQ,cAAA,KAAmB,QAAQ,KAAA,GAAQ,OAAA;AAE5D,IAAA,MAAM,EAAA,GAAK,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,iBAAA,GAAoB;AAAA,MAClB,SAAA,EAAWA,GAAAA;AAAA,MACX,GAAA;AAAA,MACA,UAAU,EAAA,CAAG,CAAA;AAAA,MACb,UAAU,EAAA,CAAG,CAAA;AAAA,MACb,UAAA,EAAY;AAAA,KACd;AACA,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAWA,KAAI,CAAA;AAC/C,IAAA,MAAA,EAAO;AACP,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,SAAA,GAAY,MAAA,EAAQ,OAAA,CAAoB,wBAAwB,CAAA;AACtE,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAMA,GAAAA,GAAK,SAAA,CAAU,OAAA,CAAQ,MAAA,IAAU,EAAA;AACvC,IAAA,MAAMD,QAAO,kBAAA,EAAmB;AAChC,IAAA,MAAME,QAAAA,GAAUF,KAAAA,CAAK,GAAA,CAAIC,GAAE,CAAA;AAC3B,IAAA,MAAME,OAAAA,GAAS,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAOF,GAAE,CAAA;AACnD,IAAA,IAAI,CAACC,QAAAA,IAAW,CAACC,OAAAA,EAAQ;AACzB,IAAA,MAAMC,OAAAA,GAAS,kBAAA,CAAmBD,OAAAA,EAAQD,QAAO,CAAA;AACjD,IAAA,IAAI,CAACE,OAAAA,EAAQ;AACb,IAAA,SAAA,GAAY;AAAA,MACV,SAAA,EAAWH,GAAAA;AAAA,MACX,aAAa,CAAA,CAAE,OAAA;AAAA,MACf,aAAa,CAAA,CAAE,OAAA;AAAA,MACf,YAAYG,OAAAA,CAAO,CAAA;AAAA,MACnB,YAAYA,OAAAA,CAAO,CAAA;AAAA,MACnB,MAAA,EAAQ,iBAAA,CAAkBH,GAAAA,EAAI,GAAA,EAAKD,KAAI;AAAA,KACzC;AACA,IAAA,IAAI,CAAC,iBAAA,CAAkB,YAAA,EAAa,EAAGC,GAAE,CAAA,EAAG;AAC1C,MAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAWA,KAAI,CAAA;AAAA,IACjD;AACA,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,YAAA,GAAe,MAAA,EAAQ,OAAA,CAAoB,sBAAsB,CAAA;AACvE,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAMA,GAAAA,GAAK,YAAA,CAAa,OAAA,CAAQ,YAAA,IAAgB,EAAA;AAChD,IAAA,MAAMD,QAAO,kBAAA,EAAmB;AAChC,IAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAIC,GAAE,CAAA;AACzB,IAAA,MAAME,OAAAA,GAAS,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAOF,GAAE,CAAA;AACnD,IAAA,IAAI,CAAC,KAAA,IAAS,CAACE,OAAAA,EAAQ;AACvB,IAAA,MAAM,MAAA,GAAS,eAAA,CAAgBA,OAAAA,EAAQ,KAAK,CAAA;AAC5C,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,EAAA,GAAK,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,MAAM,UAAA,GACH,IAAA,CAAK,KAAA,CAAM,EAAA,CAAG,CAAA,GAAI,MAAA,CAAO,CAAA,EAAG,EAAA,CAAG,CAAA,GAAI,MAAA,CAAO,CAAC,CAAA,GAAI,MAAO,IAAA,CAAK,EAAA;AAC9D,IAAA,WAAA,GAAc;AAAA,MACZ,SAAA,EAAWF,GAAAA;AAAA,MACX,SAAS,MAAA,CAAO,CAAA;AAAA,MAChB,SAAS,MAAA,CAAO,CAAA;AAAA,MAChB,UAAA;AAAA,MACA,aAAA,EAAgB,MAAM,QAAA,IAAuB;AAAA,KAC/C;AACA,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,YAAA,GAAe,MAAA,EAAQ,OAAA,CAAoB,sBAAsB,CAAA;AACvE,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAM,MAAA,GAAS,YAAA,CAAa,OAAA,CAAQ,MAAA,IAAU,EAAA;AAC9C,IAAA,MAAM,UAAA,GAAc,YAAA,CAAa,OAAA,CAAQ,MAAA,IAAU,MAAA;AACnD,IAAA,MAAM,EAAA,GAAK,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,YAAA,GAAe;AAAA,MACb,MAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAQ,MAAA,CAAO,YAAA,CAAa,aAAa,IAAI,CAAC,KAAK,EAAA,CAAG,CAAA;AAAA,MACtD,QAAQ,MAAA,CAAO,YAAA,CAAa,aAAa,IAAI,CAAC,KAAK,EAAA,CAAG,CAAA;AAAA,MACtD,UAAU,EAAA,CAAG,CAAA;AAAA,MACb,UAAU,EAAA,CAAG;AAAA,KACf;AACA,IAAA,MAAA,EAAO;AACP,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,KAAA,GAAQ,aAAA,CAAc,CAAA,CAAE,MAAM,CAAA;AACpC,EAAA,IAAI,CAAC,KAAA,EAAO;AAEV,IAAA,IAAI,CAAC,CAAA,CAAE,QAAA,IAAY,CAAA,CAAE,WAAW,QAAA,EAAU;AACxC,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AACxC,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,YAAA,GAAe;AAAA,UACb,QAAQ,EAAA,CAAG,CAAA;AAAA,UACX,QAAQ,EAAA,CAAG,CAAA;AAAA,UACX,UAAU,EAAA,CAAG,CAAA;AAAA,UACb,UAAU,EAAA,CAAG;AAAA,SACf;AAAA,MACF;AAAA,IACF;AACA,IAAA;AAAA,EACF;AACA,EAAA,MAAM,KAAK,CAAA,CAAE,MAAA,GAAS,QAAS,mBAAA,CAAoB,KAAK,GAAG,EAAA,IAAM,KAAA;AACjE,EAAA,MAAMD,QAAO,kBAAA,EAAmB;AAChC,EAAA,MAAM,OAAA,GAAUA,KAAAA,CAAK,GAAA,CAAI,EAAE,CAAA;AAC3B,EAAA,MAAM,MAAA,GAAS,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AACnD,EAAA,IAAI,CAAC,OAAA,IAAW,CAAC,MAAA,EAAQ;AACzB,EAAA,IAAA,CACG,MAAA,CAAO,SAAS,OAAA,IAAW,MAAA,CAAO,SAAS,MAAA,KAC5C,MAAA,CAAO,MAAA,IACP,MAAA,CAAO,IAAA,EACP;AACA,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAW,IAAI,CAAA;AAC/C,IAAA;AAAA,EACF;AACA,EAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,MAAA,EAAQ,OAAO,CAAA;AACjD,EAAA,IAAI,CAAC,MAAA,EAAQ;AACb,EAAA,SAAA,GAAY;AAAA,IACV,SAAA,EAAW,EAAA;AAAA,IACX,aAAa,CAAA,CAAE,OAAA;AAAA,IACf,aAAa,CAAA,CAAE,OAAA;AAAA,IACf,YAAY,MAAA,CAAO,CAAA;AAAA,IACnB,YAAY,MAAA,CAAO,CAAA;AAAA,IACnB,qBAAA,EACE,OAAO,IAAA,KAAS,SAAA,GAAY,OAAO,OAAA,CAAQ,MAAA,IAAU,EAAE,CAAA,GAAI,MAAA;AAAA,IAC7D,MAAA,EAAQ,iBAAA,CAAkB,EAAA,EAAI,GAAA,EAAKA,KAAI;AAAA,GACzC;AACA,EAAA,IAAI,CAAC,iBAAA,CAAkB,YAAA,EAAa,EAAG,EAAE,CAAA,EAAG;AAC1C,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAW,IAAI,CAAA;AAAA,EACjD;AACF;AAEA,SAAS,iBAAA,CACP,QAAA,EACA,GAAA,EACAA,KAAAA,EACa;AACb,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAC;AAClB,EAAA,MAAM,MAAM,YAAA,EAAa;AACzB,EAAA,MAAM,GAAA,GAAM,sBAAsB,GAAG,CAAA,CAAE,OAAO,CAAC,EAAA,KAAO,OAAO,QAAQ,CAAA;AACrE,EAAA,MAAM,SAAsB,EAAC;AAC7B,EAAA,KAAA,MAAW,MAAM,GAAA,EAAK;AACpB,IAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAC/C,IAAA,MAAM,EAAA,GAAKA,KAAAA,CAAK,GAAA,CAAI,EAAE,CAAA;AACtB,IAAA,IAAI,CAAC,EAAA,IAAM,CAAC,EAAA,EAAI;AAChB,IAAA,MAAM,CAAA,GAAI,kBAAA,CAAmB,EAAA,EAAI,EAAE,CAAA;AACnC,IAAA,IAAI,CAAC,CAAA,EAAG;AACR,IAAA,MAAA,CAAO,IAAA,CAAK;AAAA,MACV,EAAA;AAAA,MACA,QAAQ,CAAA,CAAE,CAAA;AAAA,MACV,QAAQ,CAAA,CAAE,CAAA;AAAA,MACV,qBAAA,EACE,GAAG,IAAA,KAAS,SAAA,GAAY,OAAO,EAAA,CAAG,MAAA,IAAU,EAAE,CAAA,GAAI;AAAA,KACrD,CAAA;AAAA,EACH;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,YAAY,CAAA,EAAqB;AACxC,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,gBAAA,CAAiB,CAAC,CAAA;AAClB,IAAA;AAAA,EACF;AACA,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,MAAM,EAAA,GAAK,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,MAAM,MAAM,eAAA,CAAgB,cAAA,CAAe,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AAC7D,IAAA,IAAI,eAAA,CAAgB,WAAA,GAAc,GAAA,CAAI,MAAA,EAAQ;AAC5C,MAAA,GAAA,CAAI,eAAA,CAAgB,WAAW,CAAA,GAC7B,CAAA,EAAG,GAAG,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,EAAI,EAAA,CAAG,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AACvC,MAAA,qBAAA,CAAsB,gBAAgB,SAAA,EAAW;AAAA,QAC/C,MAAA,EAAQ,GAAA,CAAI,IAAA,CAAK,GAAG;AAAA,OACrB,CAAA;AAAA,IACH;AACA,IAAA;AAAA,EACF;AACA,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,MAAM,EAAA,GAAK,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,iBAAA,CAAkB,WAAW,EAAA,CAAG,CAAA;AAChC,IAAA,iBAAA,CAAkB,WAAW,EAAA,CAAG,CAAA;AAChC,IAAA,iBAAA,CAAkB,UAAA,GAAa,cAAA;AAAA,MAC7B,EAAA,CAAG,CAAA;AAAA,MACH,EAAA,CAAG,CAAA;AAAA,MACH,iBAAA,CAAkB;AAAA,KACpB;AACA,IAAA,MAAMK,OAAM,MAAA,EAAO;AACnB,IAAA,IAAI,CAACA,IAAAA,EAAK;AACV,IAAA,MAAMF,OAAAA,GAASE,KAAI,QAAA,CAAS,IAAA;AAAA,MAC1B,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,iBAAA,CAAmB;AAAA,KACrC;AACA,IAAA,IAAI,CAACF,OAAAA,EAAQ;AACb,IAAA,MAAM,SAAS,iBAAA,CAAkB,UAAA,GAC7B,iBAAA,CAAkB,UAAA,CAAW,IAC7B,EAAA,CAAG,CAAA;AACP,IAAA,MAAM,SAAS,iBAAA,CAAkB,UAAA,GAC7B,iBAAA,CAAkB,UAAA,CAAW,IAC7B,EAAA,CAAG,CAAA;AACP,IAAA,IAAIA,OAAAA,CAAO,IAAA,KAAS,MAAA,IAAUA,OAAAA,CAAO,SAAS,OAAA,EAAS;AACrD,MAAA,IAAI,kBAAkB,UAAA,EAAY;AAChC,QAAA,IAAI,iBAAA,CAAkB,QAAQ,OAAA,EAAS;AACrC,UAAA,qBAAA,CAAsBA,QAAO,EAAA,EAAI;AAAA,YAC/B,MAAA,EAAQ,kBAAkB,UAAA,CAAW,SAAA;AAAA,YACrC,UAAA,EAAY,kBAAkB,UAAA,CAAW,MAAA;AAAA,YACzC,EAAA,EAAI,MAAA;AAAA,YACJ,EAAA,EAAI;AAAA,WACL,CAAA;AAAA,QACH,CAAA,MAAO;AACL,UAAA,qBAAA,CAAsBA,QAAO,EAAA,EAAI;AAAA,YAC/B,IAAA,EAAM,kBAAkB,UAAA,CAAW,SAAA;AAAA,YACnC,QAAA,EAAU,kBAAkB,UAAA,CAAW,MAAA;AAAA,YACvC,EAAA,EAAI,MAAA;AAAA,YACJ,EAAA,EAAI;AAAA,WACL,CAAA;AAAA,QACH;AAAA,MACF,CAAA,MAAO;AACL,QAAA,IAAI,iBAAA,CAAkB,QAAQ,OAAA,EAAS;AACrC,UAAA,iBAAA,CAAkBA,QAAO,EAAA,EAAI;AAAA,YAC3B,MAAA,EAAQ,MAAA;AAAA,YACR,UAAA,EAAY,MAAA;AAAA,YACZ,EAAA,EAAI,MAAA;AAAA,YACJ,EAAA,EAAI;AAAA,WACL,CAAA;AAAA,QACH,CAAA,MAAO;AACL,UAAA,iBAAA,CAAkBA,QAAO,EAAA,EAAI;AAAA,YAC3B,IAAA,EAAM,MAAA;AAAA,YACN,QAAA,EAAU,MAAA;AAAA,YACV,EAAA,EAAI,MAAA;AAAA,YACJ,EAAA,EAAI;AAAA,WACL,CAAA;AAAA,QACH;AAAA,MACF;AAAA,IACF;AACA,IAAA,MAAA,EAAO;AACP,IAAA;AAAA,EACF;AACA,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,MAAM,EAAA,GAAK,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,MAAM,KAAA,GACH,IAAA,CAAK,KAAA,CAAM,EAAA,CAAG,CAAA,GAAI,WAAA,CAAY,OAAA,EAAS,EAAA,CAAG,CAAA,GAAI,WAAA,CAAY,OAAO,CAAA,GAChE,MACF,IAAA,CAAK,EAAA;AACP,IAAA,MAAM,KAAA,GAAQ,QAAQ,WAAA,CAAY,UAAA;AAClC,IAAA,qBAAA,CAAsB,YAAY,SAAA,EAAW;AAAA,MAC3C,UAAU,IAAA,CAAK,KAAA,CAAA,CAAO,YAAY,aAAA,GAAgB,KAAA,GAAQ,OAAO,GAAG;AAAA,KACrE,CAAA;AACD,IAAA;AAAA,EACF;AACA,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,EAAA,GAAK,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,YAAA,CAAa,WAAW,EAAA,CAAG,CAAA;AAC3B,IAAA,YAAA,CAAa,WAAW,EAAA,CAAG,CAAA;AAC3B,IAAA,MAAA,EAAO;AACP,IAAA;AAAA,EACF;AACA,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,EAAA,GAAK,QAAA,CAAS,CAAA,CAAE,OAAA,EAAS,EAAE,OAAO,CAAA;AACxC,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,YAAA,CAAa,WAAW,EAAA,CAAG,CAAA;AAC3B,IAAA,YAAA,CAAa,WAAW,EAAA,CAAG,CAAA;AAC3B,IAAA,MAAA,EAAO;AACP,IAAA;AAAA,EACF;AACA,EAAA,IAAI,CAAC,SAAA,IAAa,CAAC,QAAA,EAAU;AAC7B,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,MAAM,MAAA,GAAS,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,SAAA,CAAW,SAAS,CAAA;AACrE,EAAA,IAAI,CAAC,MAAA,EAAQ;AACb,EAAA,MAAM,OAAA,GAAU,SAAS,qBAAA,EAAsB;AAC/C,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,CAAO,KAAA,GAAQ,OAAA,CAAQ,KAAA;AAC1C,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,CAAO,MAAA,GAAS,OAAA,CAAQ,MAAA;AAC3C,EAAA,MAAM,EAAA,GAAA,CAAM,CAAA,CAAE,OAAA,GAAU,SAAA,CAAU,WAAA,IAAe,MAAA;AACjD,EAAA,MAAM,EAAA,GAAA,CAAM,CAAA,CAAE,OAAA,GAAU,SAAA,CAAU,WAAA,IAAe,MAAA;AACjD,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,SAAA,CAAU,aAAa,EAAE,CAAA;AACpD,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,SAAA,CAAU,aAAa,EAAE,CAAA;AACpD,EAAA,MAAMH,QAAO,kBAAA,EAAmB;AAChC,EAAA,MAAM,OAAA,GAAUA,KAAAA,CAAK,GAAA,CAAI,SAAA,CAAU,SAAS,CAAA;AAC5C,EAAA,IAAI,CAAC,OAAA,EAAS;AACd,EAAA,SAAA,CAAU,MAAA,EAAQ,OAAA,EAAS,OAAA,EAAS,OAAO,CAAA;AAC3C,EAAA,KAAA,MAAW,KAAA,IAAS,UAAU,MAAA,EAAQ;AACpC,IAAA,MAAM,GAAA,GAAM,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,KAAA,CAAM,EAAE,CAAA;AACtD,IAAA,MAAM,MAAA,GAASA,KAAAA,CAAK,GAAA,CAAI,KAAA,CAAM,EAAE,CAAA;AAChC,IAAA,IAAI,CAAC,GAAA,IAAO,CAAC,MAAA,EAAQ;AACrB,IAAA,SAAA;AAAA,MACE,GAAA;AAAA,MACA,MAAA;AAAA,MACA,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,EAAE,CAAA;AAAA,MAC5B,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,EAAE,CAAA;AAAA,MAC5B,KAAA,CAAM;AAAA,KACR;AAAA,EACF;AACF;AAEA,SAAS,UAAU,CAAA,EAAqB;AACtC,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,WAAA,GAAc,IAAA;AACd,IAAA,MAAA,EAAO;AAAA,EACT;AACA,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,eAAA,GAAkB,IAAA;AAClB,IAAA,MAAA,EAAO;AAAA,EACT;AACA,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,iBAAA,GAAoB,IAAA;AACpB,IAAA,MAAA,EAAO;AAAA,EACT;AACA,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,IAAA,MAAM,YAAA,GAAe,MAAA,EAAQ,OAAA,CAAoB,sBAAsB,CAAA;AACvE,IAAA,MAAM,SAAS,YAAA,EAAc,OAAA,CAAQ,MAAA,IAAU,aAAA,CAAc,EAAE,MAAM,CAAA;AACrE,IAAA,MAAM,QAAA,GAAY,YAAA,EAAc,OAAA,CAAQ,MAAA,IAAU,MAAA;AAClD,IAAA,IAAI,MAAA,IAAU,MAAA,KAAW,YAAA,CAAa,MAAA,EAAQ;AAC5C,MAAA,MAAM,MAAM,MAAA,EAAO;AACnB,MAAA,IAAI,GAAA,EAAK;AACP,QAAA,MAAM,KAAA,GAAQ,gBAAgB,OAAO,CAAA;AACrC,QAAA,UAAA,CAAW;AAAA,UACT,IAAA,EAAM,OAAA;AAAA,UACN,EAAA,EAAI,KAAA;AAAA,UACJ,QAAA,EAAU,CAAA;AAAA,UACV,aAAa,EAAC;AAAA,UACd,QAAQ,EAAC;AAAA,UACT,QAAQ,YAAA,CAAa,MAAA;AAAA,UACrB,IAAA,EAAM,MAAA;AAAA,UACN,YAAY,YAAA,CAAa,UAAA;AAAA,UACzB,QAAA;AAAA,UACA,MAAA,EAAQ,SAAA;AAAA,UACR,WAAA,EAAa,CAAA;AAAA,UACb,SAAA,EAAW,CAAA;AAAA,UACX,UAAA,EAAY,SAAA;AAAA,UACZ,YAAA,EAAc,CAAA;AAAA,UACd,YAAA,EAAc,CAAA;AAAA,UACd,SAAA,EAAW,MAAA;AAAA,UACX,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAAA,IACF;AACA,IAAA,YAAA,GAAe,IAAA;AACf,IAAA,MAAA,EAAO;AAAA,EACT;AACA,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa,MAAA,EAAQ,aAAa,QAAQ,CAAA;AAC9D,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa,MAAA,EAAQ,aAAa,QAAQ,CAAA;AAC9D,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa,QAAA,GAAW,aAAa,MAAM,CAAA;AAC/D,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa,QAAA,GAAW,aAAa,MAAM,CAAA;AAC/D,IAAA,YAAA,GAAe,IAAA;AACf,IAAA,mBAAA,GAAsB,IAAA;AAGtB,IAAA,IAAI,EAAA,GAAK,CAAA,IAAK,EAAA,GAAK,CAAA,EAAG;AACpB,MAAA,MAAM,MAAM,MAAA,EAAO;AACnB,MAAA,IAAI,GAAA,EAAK;AACP,QAAA,MAAMA,QAAO,kBAAA,EAAmB;AAChC,QAAA,MAAM,WAAA,GAAc,EAAE,CAAA,EAAG,EAAA,EAAI,GAAG,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG;AACjD,QAAA,MAAM,aAAuB,EAAC;AAC9B,QAAA,KAAA,MAAW,EAAA,IAAM,IAAI,QAAA,EAAU;AAC7B,UAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,EAAA,CAAG,EAAE,CAAA;AAC5B,UAAA,IAAI,CAAC,KAAA,EAAO;AACZ,UAAA,MAAM,IAAA,GAAO,WAAA,CAAY,EAAA,EAAI,KAAK,CAAA;AAClC,UAAA,IAAI,IAAA,IAAQ,iBAAA,CAAkB,IAAA,EAAM,WAAW,CAAA,EAAG;AAChD,YAAA,UAAA,CAAW,IAAA,CAAK,GAAG,EAAE,CAAA;AAAA,UACvB;AAAA,QACF;AACA,QAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC3B,UAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,WAAW,UAAA,CAAW,CAAC,GAAG,CAAA;AAAA,QAC5D,CAAA,MAAA,IAAW,UAAA,CAAW,MAAA,GAAS,CAAA,EAAG;AAChC,UAAA,YAAA,CAAa,EAAE,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,YAAY,CAAA;AAAA,QAC3D,CAAA,MAAO;AACL,UAAA,YAAA,CAAa,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,QAC/B;AAAA,MACF;AAAA,IACF;AACA,IAAA,MAAA,EAAO;AAAA,EACT;AACA,EAAA,SAAA,GAAY,IAAA;AACZ,EAAA,WAAA,GAAc,IAAA;AAChB;AAEA,SAAS,SAAA,CACP,MAAA,EACA,KAAA,EACA,CAAA,EACA,GACA,eAAA,EACM;AACN,EAAA,IACE,MAAA,CAAO,SAAS,MAAA,IAChB,MAAA,CAAO,SAAS,OAAA,IAChB,MAAA,CAAO,SAAS,MAAA,EAChB;AACA,IAAA,qBAAA,CAAsB,MAAA,CAAO,EAAA,EAAI,EAAE,CAAA,EAAG,GAAG,CAAA;AAAA,EAC3C,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,QAAA,EAAU;AACnC,IAAA,qBAAA,CAAsB,OAAO,EAAA,EAAI,EAAE,IAAI,CAAA,EAAG,EAAA,EAAI,GAAG,CAAA;AAAA,EACnD,CAAA,MAAA,IAAA,CACG,OAAO,IAAA,KAAS,MAAA,IAAU,OAAO,IAAA,KAAS,OAAA,KAC3C,OAAO,KAAA,CAAM,EAAA,KAAO,QAAA,IACpB,OAAO,KAAA,CAAM,EAAA,KAAO,YACpB,OAAO,KAAA,CAAM,OAAO,QAAA,IACpB,OAAO,KAAA,CAAM,EAAA,KAAO,QAAA,EACpB;AACA,IAAA,MAAM,EAAA,GAAK,IAAK,KAAA,CAAM,EAAA;AACtB,IAAA,MAAM,EAAA,GAAK,IAAK,KAAA,CAAM,EAAA;AACtB,IAAA,qBAAA,CAAsB,OAAO,EAAA,EAAI;AAAA,MAC/B,EAAA,EAAI,CAAA;AAAA,MACJ,EAAA,EAAI,CAAA;AAAA,MACJ,EAAA,EAAK,MAAM,EAAA,GAAgB,EAAA;AAAA,MAC3B,EAAA,EAAK,MAAM,EAAA,GAAgB;AAAA,KAC5B,CAAA;AAAA,EACH,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,MAAA,EAAQ;AACjC,IAAA,qBAAA,CAAsB,MAAA,CAAO,EAAA,EAAI,EAAE,CAAA,EAAG,GAAG,CAAA;AAAA,EAC3C,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,SAAA,EAAW;AACpC,IAAA,MAAM,IAAA,GAAO,mBAAmB,SAAA,EAAW,qBAAA;AAC3C,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,UAAA,GAAa,kBAAkB,IAAI,CAAA;AACzC,IAAA,IAAI,CAAC,UAAA,EAAY;AACjB,IAAA,MAAM,EAAA,GAAK,IAAI,UAAA,CAAW,CAAA;AAC1B,IAAA,MAAM,EAAA,GAAK,IAAI,UAAA,CAAW,CAAA;AAC1B,IAAA,MAAM,SAAA,GAAY,kBAAA,CAAmB,IAAA,EAAM,EAAA,EAAI,EAAE,CAAA;AACjD,IAAA,qBAAA,CAAsB,MAAA,CAAO,EAAA,EAAI,EAAE,MAAA,EAAQ,WAAW,CAAA;AAAA,EACxD,CAAA,MAAA,IAAW,MAAA,CAAO,IAAA,KAAS,OAAA,EAAS;AAClC,IAAA,MAAM,EAAA,GAAK,IAAI,MAAA,CAAO,CAAA;AACtB,IAAA,MAAM,EAAA,GAAK,IAAI,MAAA,CAAO,CAAA;AACtB,IAAA,WAAA,CAAY,MAAA,CAAO,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,EAC/B;AACF;AAEA,SAAS,kBAAA,CACP,QACA,KAAA,EACiC;AACjC,EAAA,IACE,MAAA,CAAO,SAAS,MAAA,IAChB,MAAA,CAAO,SAAS,OAAA,IAChB,MAAA,CAAO,SAAS,MAAA,EAChB;AACA,IAAA,OAAO,EAAE,CAAA,EAAG,KAAA,CAAM,CAAA,EAAa,CAAA,EAAG,MAAM,CAAA,EAAY;AAAA,EACtD;AACA,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA;AAClB,IAAA,OAAO,EAAE,CAAA,EAAG,KAAA,CAAM,EAAA,EAAc,CAAA,EAAG,MAAM,EAAA,EAAa;AACxD,EAAA,IAAA,CACG,MAAA,CAAO,SAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,KAC3C,OAAO,KAAA,CAAM,EAAA,KAAO,QAAA,EACpB;AACA,IAAA,OAAO,EAAE,CAAA,EAAG,KAAA,CAAM,EAAA,EAAc,CAAA,EAAG,MAAM,EAAA,EAAa;AAAA,EACxD;AACA,EAAA,IAAI,OAAO,IAAA,KAAS,MAAA;AAClB,IAAA,OAAO,EAAE,GAAI,KAAA,CAAM,CAAA,IAAgB,GAAG,CAAA,EAAI,KAAA,CAAM,KAAgB,CAAA,EAAE;AACpE,EAAA,IAAI,MAAA,CAAO,SAAS,SAAA,EAAW;AAC7B,IAAA,MAAM,QAAQ,iBAAA,CAAkB,MAAA,CAAO,KAAA,CAAM,MAAA,IAAU,EAAE,CAAC,CAAA;AAC1D,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,OAAA,EAAS;AAC3B,IAAA,OAAO,EAAE,CAAA,EAAG,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,OAAO,CAAA,EAAE;AAAA,EACpC;AACA,EAAA,OAAO,IAAA;AACT;AAGA,SAAS,WAAA,CACP,QACA,KAAA,EACuD;AACvD,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AACrD,IAAA,OAAO;AAAA,MACL,GAAG,KAAA,CAAM,CAAA;AAAA,MACT,GAAG,KAAA,CAAM,CAAA;AAAA,MACT,GAAG,KAAA,CAAM,KAAA;AAAA,MACT,GAAG,KAAA,CAAM;AAAA,KACX;AAAA,EACF;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA;AAChB,IAAA,OAAO;AAAA,MACL,CAAA,EAAI,MAAM,EAAA,GAAgB,CAAA;AAAA,MAC1B,CAAA,EAAI,MAAM,EAAA,GAAgB,CAAA;AAAA,MAC1B,GAAG,CAAA,GAAI,CAAA;AAAA,MACP,GAAG,CAAA,GAAI;AAAA,KACT;AAAA,EACF;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,QAAA,EAAU,MAAA,CAAO,EAAE,CAAA;AACjD,IAAA,IAAI,MAAM,OAAO,IAAA;AAEjB,IAAA,OAAO;AAAA,MACL,GAAG,KAAA,CAAM,CAAA;AAAA,MACT,GAAG,KAAA,CAAM,CAAA;AAAA,MACT,CAAA,EAAG,GAAA;AAAA,MACH,CAAA,EAAI,MAAM,QAAA,IAAuB;AAAA,KACnC;AAAA,EACF;AACA,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AACrD,IAAA,MAAM,MAAA,GACJ,MAAA,CAAO,IAAA,KAAS,MAAA,GACZ,iBAAA;AAAA,MACE,KAAA;AAAA,MACA,kBAAA,EAAmB;AAAA,0BACf,GAAA;AAAI,KACV,GACA,kBAAA;AAAA,MACE,KAAA;AAAA,MACA,kBAAA,EAAmB;AAAA,0BACf,GAAA;AAAI,KACV;AACN,IAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,IAAA,OAAO;AAAA,MACL,GAAG,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,EAAA,EAAI,OAAO,EAAE,CAAA;AAAA,MAChC,GAAG,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,EAAA,EAAI,OAAO,EAAE,CAAA;AAAA,MAChC,GAAG,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,EAAA,GAAK,OAAO,EAAE,CAAA;AAAA,MACjC,GAAG,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,EAAA,GAAK,OAAO,EAAE;AAAA,KACnC;AAAA,EACF;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,SAAA,EAAW;AAC7B,IAAA,OAAO,kBAAA,CAAmB,MAAA,CAAO,KAAA,CAAM,MAAA,IAAU,EAAE,CAAC,CAAA;AAAA,EACtD;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,MAAA,EAAQ;AAC1B,IAAA,OAAO,gBAAA,CAAiB,QAAA,EAAU,MAAA,CAAO,EAAE,CAAA;AAAA,EAC7C;AACA,EAAA,OAAO,IAAA;AACT;AAWO,SAAS,iBAAA,CACd,QACA,OAAA,EACS;AACT,EAAA,OACE,MAAA,CAAO,IAAI,OAAA,CAAQ,CAAA,GAAI,QAAQ,CAAA,IAC/B,MAAA,CAAO,CAAA,GAAI,MAAA,CAAO,CAAA,GAAI,OAAA,CAAQ,KAC9B,MAAA,CAAO,CAAA,GAAI,QAAQ,CAAA,GAAI,OAAA,CAAQ,KAC/B,MAAA,CAAO,CAAA,GAAI,MAAA,CAAO,CAAA,GAAI,OAAA,CAAQ,CAAA;AAElC;AAEA,SAAS,iBAAiB,CAAA,EAAqB;AAC7C,EAAA,IAAI,CAAC,WAAA,IAAe,CAAC,QAAA,EAAU;AAC/B,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,MAAM,MAAA,GAAS,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,WAAA,CAAa,SAAS,CAAA;AACvE,EAAA,IAAI,CAAC,MAAA,EAAQ;AACb,EAAA,MAAM,IAAA,GAAO,SAAS,qBAAA,EAAsB;AAC5C,EAAA,MAAM,EAAA,GAAK,GAAA,CAAI,MAAA,CAAO,KAAA,GAAQ,IAAA,CAAK,KAAA;AACnC,EAAA,MAAM,EAAA,GAAK,GAAA,CAAI,MAAA,CAAO,MAAA,GAAS,IAAA,CAAK,MAAA;AACpC,EAAA,MAAM,EAAA,GAAA,CAAM,CAAA,CAAE,OAAA,GAAU,WAAA,CAAY,WAAA,IAAe,EAAA;AACnD,EAAA,MAAM,EAAA,GAAA,CAAM,CAAA,CAAE,OAAA,GAAU,WAAA,CAAY,WAAA,IAAe,EAAA;AACnD,EAAA,MAAM,IAAI,WAAA,CAAY,MAAA;AACtB,EAAA,MAAM,UAAU,CAAA,CAAE,QAAA;AAElB,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AACrD,IAAA,IAAI,OAAO,WAAA,CAAY,MAAA;AACvB,IAAA,IAAI,OAAO,WAAA,CAAY,MAAA;AACvB,IAAA,IAAI,OAAO,WAAA,CAAY,MAAA;AACvB,IAAA,IAAI,OAAO,WAAA,CAAY,MAAA;AACvB,IAAA,IAAI,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG;AACnB,MAAA,IAAA,GAAO,YAAY,MAAA,GAAS,EAAA;AAC5B,MAAA,IAAA,GAAO,YAAY,MAAA,GAAS,EAAA;AAAA,IAC9B;AACA,IAAA,IAAI,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG;AACnB,MAAA,IAAA,GAAO,YAAY,MAAA,GAAS,EAAA;AAAA,IAC9B;AACA,IAAA,IAAI,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG;AACnB,MAAA,IAAA,GAAO,YAAY,MAAA,GAAS,EAAA;AAC5B,MAAA,IAAA,GAAO,YAAY,MAAA,GAAS,EAAA;AAAA,IAC9B;AACA,IAAA,IAAI,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG;AACnB,MAAA,IAAA,GAAO,YAAY,MAAA,GAAS,EAAA;AAAA,IAC9B;AACA,IAAA,IAAI,OAAA,KAAY,MAAM,IAAA,IAAQ,CAAA,KAAM,QAAQ,CAAA,KAAM,IAAA,IAAQ,MAAM,IAAA,CAAA,EAAO;AACrE,MAAA,MAAM,SAAS,WAAA,CAAY,MAAA;AAC3B,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC3B,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAC3B,MAAA,IAAI,KAAA,GAAQ,SAAS,KAAA,EAAO;AAC1B,QAAA,MAAM,OAAA,GAAU,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,KAAA,CAAM,KAAA,GAAQ,MAAM,CAAC,CAAA;AACtD,QAAA,IAAI,CAAA,CAAE,SAAS,GAAG,CAAA;AAChB,UAAA,IAAA,GAAO,WAAA,CAAY,MAAA,GAAS,WAAA,CAAY,MAAA,GAAS,OAAA;AACnD,QAAA,IAAA,GAAO,OAAA;AAAA,MACT,CAAA,MAAO;AACL,QAAA,MAAM,OAAA,GAAU,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,KAAA,CAAM,KAAA,GAAQ,MAAM,CAAC,CAAA;AACtD,QAAA,IAAI,CAAA,CAAE,SAAS,GAAG,CAAA;AAChB,UAAA,IAAA,GAAO,WAAA,CAAY,MAAA,GAAS,WAAA,CAAY,MAAA,GAAS,OAAA;AACnD,QAAA,IAAA,GAAO,OAAA;AAAA,MACT;AAAA,IACF;AACA,IAAA,IAAI,OAAO,CAAA,EAAG;AACZ,MAAA,IAAA,GAAO,IAAA,GAAO,IAAA;AACd,MAAA,IAAA,GAAO,CAAC,IAAA;AAAA,IACV;AACA,IAAA,IAAI,OAAO,CAAA,EAAG;AACZ,MAAA,IAAA,GAAO,IAAA,GAAO,IAAA;AACd,MAAA,IAAA,GAAO,CAAC,IAAA;AAAA,IACV;AACA,IAAA,IAAA,GAAO,KAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAA;AACnC,IAAA,IAAA,GAAO,KAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAA;AACnC,IAAA,qBAAA,CAAsB,OAAO,EAAA,EAAI;AAAA,MAC/B,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAAA,MAClB,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAAA,MAClB,KAAA,EAAO,IAAA;AAAA,MACP,MAAA,EAAQ;AAAA,KACT,CAAA;AACD,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,MAAA,CAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,MAAM,EAAA,GAAK,YAAY,OAAA,IAAW,CAAA;AAClC,IAAA,MAAM,EAAA,GAAK,YAAY,OAAA,IAAW,CAAA;AAClC,IAAA,MAAM,EAAA,GAAK,YAAY,MAAA,IAAU,CAAA;AACjC,IAAA,IAAI,EAAA;AACJ,IAAA,IAAI,MAAM,GAAA,EAAK,EAAA,GAAK,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,EAAE,CAAA;AAAA,SAAA,IAC9B,MAAM,GAAA,EAAK,EAAA,GAAK,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,EAAE,CAAA;AAAA,SAAA,IACnC,MAAM,GAAA,EAAK,EAAA,GAAK,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,EAAE,CAAA;AAAA,SAAA,IACnC,MAAM,GAAA,EAAK,EAAA,GAAK,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,EAAE,CAAA;AAAA,SACvC;AACH,MAAA,MAAM,MAAM,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,GAAI,KAAK,CAAC,EAAA;AACpC,MAAA,MAAM,MAAM,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,GAAI,KAAK,CAAC,EAAA;AACpC,MAAA,MAAM,EAAA,GAAK,UAAU,IAAA,CAAK,GAAA,CAAI,KAAK,GAAG,CAAA,GAAA,CAAK,MAAM,GAAA,IAAO,CAAA;AACxD,MAAA,EAAA,GAAK,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,EAAA,GAAK,EAAE,CAAA;AAAA,IAC1B;AACA,IAAA,qBAAA,CAAsB,MAAA,CAAO,EAAA,EAAI,EAAE,CAAA,EAAG,IAAA,CAAK,MAAM,EAAE,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,CAAA;AAC9D,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,MAAA,CAAO,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,OAAA,GAAU,YAAY,aAAA,IAAiB,EAAA;AAC7C,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,YAAY,MAAM,CAAA;AAC9C,IAAA,MAAM,IAAA,GAAO,CAAA,CAAE,QAAA,CAAS,GAAG,IACvB,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,OAAA,GAAU,EAAE,CAAA,GACxB,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,UAAU,EAAE,CAAA;AAC5B,IAAA,MAAM,QAAQ,IAAA,GAAO,OAAA;AACrB,IAAA,MAAM,WAAA,GAAc,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,KAAA,CAAM,OAAA,GAAU,KAAK,CAAC,CAAA;AAC3D,IAAA,qBAAA,CAAsB,MAAA,CAAO,EAAA,EAAI,EAAE,QAAA,EAAU,aAAa,CAAA;AAC1D,IAAA;AAAA,EACF;AACF;AAEA,SAAS,MAAA,GAAe;AACtB,EAAA,IAAI,CAAC,QAAA,EAAU;AACf,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,QAAA,CAAS,SAAA,GAAY,EAAA;AACrB,IAAA,QAAA,CAAS,gBAAgB,SAAS,CAAA;AAClC,IAAA,QAAA,CAAS,MAAM,KAAA,GAAQ,GAAA;AACvB,IAAA,QAAA,CAAS,MAAM,MAAA,GAAS,GAAA;AACxB,IAAA;AAAA,EACF;AACA,EAAA,QAAA,CAAS,YAAA;AAAA,IACP,SAAA;AAAA,IACA,OAAO,GAAA,CAAI,MAAA,CAAO,KAAK,CAAA,CAAA,EAAI,GAAA,CAAI,OAAO,MAAM,CAAA;AAAA,GAC9C;AACA,EAAA,QAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,GAAA,CAAI,MAAA,CAAO,QAAQ,UAAA,GAAa,IAAA;AACvD,EAAA,QAAA,CAAS,KAAA,CAAM,MAAA,GAAS,GAAA,CAAI,MAAA,CAAO,SAAS,UAAA,GAAa,IAAA;AACzD,EAAA,QAAA,CAAS,KAAA,CAAM,eAAA,GAAkB,GAAA,CAAI,MAAA,CAAO,UAAA;AAE5C,EAAA,QAAA,CAAS,SAAA,GAAY,SAAS,gBAAgB,CAAA,OAAA,CAAA;AAE9C,EAAA,MAAMA,QAAO,kBAAA,EAAmB;AAChC,EAAA,MAAM,YAAA,uBAAmB,GAAA,EAA8B;AACvD,EAAA,KAAA,MAAW,MAAM,GAAA,CAAI,QAAA,eAAuB,GAAA,CAAI,EAAA,CAAG,IAAI,EAAE,CAAA;AAEzD,EAAA,KAAA,MAAW,EAAA,IAAM,IAAI,QAAA,EAAU;AAC7B,IAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,EAAA,CAAG,EAAE,CAAA;AAC5B,IAAA,IAAI,CAAC,KAAA,EAAO;AACZ,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,EAAA,EAAI,KAAA,EAAOA,OAAM,YAAY,CAAA;AACrD,IAAA,IAAI,CAAA,EAAG;AACL,MAAA,IAAI,CAAC,KAAA,CAAM,OAAA,EAAS,CAAA,CAAE,YAAA,CAAa,WAAW,MAAM,CAAA;AACpD,MAAA,QAAA,CAAS,YAAY,CAAC,CAAA;AAAA,IACxB;AAAA,EACF;AAEA,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,IAAI,SAAA,CAAU,SAAS,SAAA,EAAW;AAChC,IAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,GAAA,CAAI,SAAA,CAAU,SAAS,CAAA;AAClD,IAAA,IAAI,KAAA,IAAS,OAAA,CAAQ,KAAK,CAAA,EAAG;AAC3B,MAAA,MAAM,YAAA,GAAe,kBAAA,CAAmB,SAAA,CAAU,SAAS,CAAA;AAC3D,MAAA,IAAI,YAAA,EAAc,QAAA,CAAS,WAAA,CAAY,YAAY,CAAA;AAAA,IACrD,CAAA,MAAO;AACL,MAAA,MAAM,OAAA,GAAU,sBAAA;AAAA,QACd,QAAA;AAAA,QACA,SAAA,CAAU,SAAA;AAAA,QACVA,KAAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAI,OAAA,EAAS,QAAA,CAAS,WAAA,CAAY,OAAO,CAAA;AACzC,MAAA,MAAM,MAAA,GAAS,oBAAA;AAAA,QACb,QAAA;AAAA,QACA,SAAA,CAAU,SAAA;AAAA,QACVA,KAAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAI,MAAA,EAAQ,QAAA,CAAS,WAAA,CAAY,MAAM,CAAA;AACvC,MAAA,MAAM,SAAA,GAAY,yBAAA;AAAA,QAChB,SAAA,CAAU,SAAA;AAAA,QACVA,KAAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAI,SAAA,EAAW,QAAA,CAAS,WAAA,CAAY,SAAS,CAAA;AAC7C,MAAA,MAAM,QAAA,GAAW,0BAAA;AAAA,QACf,SAAA,CAAU,SAAA;AAAA,QACVA,KAAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAI,QAAA,EAAU,QAAA,CAAS,WAAA,CAAY,QAAQ,CAAA;AAC3C,MAAA,MAAM,MAAA,GAAS,mBAAA;AAAA,QACb,QAAA;AAAA,QACA,SAAA,CAAU,SAAA;AAAA,QACVA,KAAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAI,MAAA,EAAQ,QAAA,CAAS,WAAA,CAAY,MAAM,CAAA;AAAA,IACzC;AAAA,EACF,CAAA,MAAA,IAAW,SAAA,CAAU,IAAA,KAAS,UAAA,EAAY;AACxC,IAAA,KAAA,MAAW,IAAA,IAAQ,UAAU,UAAA,EAAY;AACvC,MAAA,MAAM,OAAA,GAAU,sBAAA;AAAA,QACd,QAAA;AAAA,QACA,IAAA;AAAA,QACAA,KAAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,IAAI,OAAA,EAAS,QAAA,CAAS,WAAA,CAAY,OAAO,CAAA;AAAA,IAC3C;AAAA,EACF;AAEA,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,MAAM,MAAA,GAAS,iBAAA;AAAA,MACb,iBAAA,CAAkB,SAAA;AAAA,MAClBA,KAAAA;AAAA,MACA,YAAA;AAAA,MACA,iBAAA,CAAkB;AAAA,KACpB;AACA,IAAA,IAAI,MAAA,EAAQ,QAAA,CAAS,WAAA,CAAY,MAAM,CAAA;AAAA,EACzC;AAEA,EAAA,IACE,gBAAA,KACC,CAAC,YAAA,IAAgB,gBAAA,KAAqB,aAAa,MAAA,CAAA,EACpD;AACA,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,gBAAA,EAAkBA,KAAAA,EAAM,YAAY,CAAA;AACrE,IAAA,IAAI,OAAA,EAAS,QAAA,CAAS,WAAA,CAAY,OAAO,CAAA;AAAA,EAC3C;AACA,EAAA,IAAI,YAAA,IAAgB,YAAA,CAAa,MAAA,KAAW,gBAAA,EAAkB;AAC5D,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,YAAA,CAAa,MAAA,EAAQA,OAAM,YAAY,CAAA;AACxE,IAAA,IAAI,OAAA,EAAS,QAAA,CAAS,WAAA,CAAY,OAAO,CAAA;AAAA,EAC3C;AAEA,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AACxD,IAAA,QAAA,CAAS,YAAA,CAAa,IAAA,EAAM,MAAA,CAAO,YAAA,CAAa,MAAM,CAAC,CAAA;AACvD,IAAA,QAAA,CAAS,YAAA,CAAa,IAAA,EAAM,MAAA,CAAO,YAAA,CAAa,MAAM,CAAC,CAAA;AACvD,IAAA,QAAA,CAAS,YAAA,CAAa,IAAA,EAAM,MAAA,CAAO,YAAA,CAAa,QAAQ,CAAC,CAAA;AACzD,IAAA,QAAA,CAAS,YAAA,CAAa,IAAA,EAAM,MAAA,CAAO,YAAA,CAAa,QAAQ,CAAC,CAAA;AACzD,IAAA,QAAA,CAAS,YAAA,CAAa,UAAU,SAAS,CAAA;AACzC,IAAA,QAAA,CAAS,YAAA,CAAa,gBAAgB,GAAG,CAAA;AACzC,IAAA,QAAA,CAAS,YAAA,CAAa,oBAAoB,KAAK,CAAA;AAC/C,IAAA,QAAA,CAAS,YAAA,CAAa,cAAc,oBAAoB,CAAA;AACxD,IAAA,QAAA,CAAS,MAAM,aAAA,GAAgB,MAAA;AAC/B,IAAA,QAAA,CAAS,YAAY,QAAQ,CAAA;AAAA,EAC/B;AAEA,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa,MAAA,EAAQ,aAAa,QAAQ,CAAA;AAC9D,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa,MAAA,EAAQ,aAAa,QAAQ,CAAA;AAC9D,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa,QAAA,GAAW,aAAa,MAAM,CAAA;AAC/D,IAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAI,YAAA,CAAa,QAAA,GAAW,aAAa,MAAM,CAAA;AAC/D,IAAA,IAAI,EAAA,GAAK,CAAA,IAAK,EAAA,GAAK,CAAA,EAAG;AACpB,MAAA,MAAM,WAAA,GAAc,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AAC3D,MAAA,WAAA,CAAY,YAAA,CAAa,GAAA,EAAK,MAAA,CAAO,EAAE,CAAC,CAAA;AACxC,MAAA,WAAA,CAAY,YAAA,CAAa,GAAA,EAAK,MAAA,CAAO,EAAE,CAAC,CAAA;AACxC,MAAA,WAAA,CAAY,YAAA,CAAa,OAAA,EAAS,MAAA,CAAO,EAAE,CAAC,CAAA;AAC5C,MAAA,WAAA,CAAY,YAAA,CAAa,QAAA,EAAU,MAAA,CAAO,EAAE,CAAC,CAAA;AAC7C,MAAA,WAAA,CAAY,YAAA,CAAa,QAAQ,0BAA0B,CAAA;AAC3D,MAAA,WAAA,CAAY,YAAA,CAAa,UAAU,SAAS,CAAA;AAC5C,MAAA,WAAA,CAAY,YAAA,CAAa,gBAAgB,GAAG,CAAA;AAC5C,MAAA,WAAA,CAAY,YAAA,CAAa,oBAAoB,KAAK,CAAA;AAClD,MAAA,WAAA,CAAY,MAAM,aAAA,GAAgB,MAAA;AAClC,MAAA,QAAA,CAAS,YAAY,WAAW,CAAA;AAAA,IAClC;AAAA,EACF;AACF;AAEA,SAAS,cAAA,CACP,CAAA,EACA,CAAA,EACA,gBAAA,EACoE;AACpE,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,MAAMA,QAAO,kBAAA,EAAmB;AAGhC,EAAA,MAAM,aAAa,EAAC;AACpB,EAAA,KAAA,MAAW,MAAA,IAAU,IAAI,QAAA,EAAU;AACjC,IAAA,IAAI,MAAA,CAAO,OAAO,gBAAA,EAAkB;AAEpC,IAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,OAAA,EAAS;AACvD,IAAA,MAAM,KAAA,GAAQA,KAAAA,CAAK,GAAA,CAAI,MAAA,CAAO,EAAE,CAAA;AAChC,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,KAAA,CAAM,OAAA,EAAS;AAC9B,IAAA,MAAM,MAAA,GAAS,eAAA,CAAgB,MAAA,EAAQ,KAAgC,CAAA;AACvE,IAAA,UAAA,CAAW,IAAA,CAAK,GAAG,MAAM,CAAA;AAAA,EAC3B;AAEA,EAAA,MAAM,UAAU,iBAAA,CAAkB,EAAE,GAAG,CAAA,EAAE,EAAG,YAAY,WAAW,CAAA;AACnE,EAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AACrB,EAAA,OAAO;AAAA,IACL,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,GAAG,OAAA,CAAQ,CAAA;AAAA,IACX,GAAG,OAAA,CAAQ;AAAA,GACb;AACF;AAEA,SAAS,mBAAmB,OAAA,EAAoC;AAC9D,EAAA,MAAM,GAAA,GAAM,UAAU,OAAO,CAAA;AAC7B,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,GAAG,CAAA;AAC9C,EAAA,CAAA,CAAE,YAAA,CAAa,gBAAgB,OAAO,CAAA;AACtC,EAAA,MAAM,GAAA,GAAM,CAAA;AACZ,EAAA,MAAM,CAAA,GAAI,IAAI,CAAA,GAAI,GAAA;AAClB,EAAA,MAAM,CAAA,GAAI,IAAI,CAAA,GAAI,GAAA;AAClB,EAAA,MAAM,CAAA,GAAI,GAAA,CAAI,CAAA,GAAI,GAAA,GAAM,CAAA;AACxB,EAAA,MAAM,CAAA,GAAI,GAAA,CAAI,CAAA,GAAI,GAAA,GAAM,CAAA;AACxB,EAAA,MAAM,SAAA,GAAY,CAAA;AAClB,EAAA,CAAA,CAAE,SAAA,GAAY;AAAA,aAAA,EACD,CAAC,CAAA,KAAA,EAAQ,CAAC,CAAA,SAAA,EAAY,CAAC,aAAa,CAAC,CAAA;AAAA;AAAA,aAAA,EAErC,CAAA,GAAI,SAAS,CAAA,KAAA,EAAQ,CAAA,GAAI,SAAS,CAAA,SAAA,EAAY,CAAA,GAAI,SAAA,GAAY,CAAC,CAAA,UAAA,EAAa,SAAA,GAAY,CAAC,CAAA;AAAA;AAAA,aAAA,EAEzF,CAAA,GAAI,SAAS,CAAA,KAAA,EAAQ,CAAA,GAAI,CAAA,GAAI,SAAS,CAAA,SAAA,EAAY,CAAA,GAAI,SAAA,GAAY,CAAC,CAAA,UAAA,EAAa,SAAA,GAAY,CAAC,CAAA;AAAA;AAAA,aAAA,EAE7F,CAAA,GAAI,SAAS,CAAA,KAAA,EAAQ,CAAC,YAAY,SAAA,GAAY,CAAC,aAAa,CAAC,CAAA;AAAA;AAAA,aAAA,EAE7D,CAAA,GAAI,IAAI,SAAS,CAAA,KAAA,EAAQ,CAAC,CAAA,SAAA,EAAY,SAAA,GAAY,CAAC,CAAA,UAAA,EAAa,CAAC,CAAA;AAAA;AAAA,EAAA,CAAA;AAG9E,EAAA,OAAO,CAAA;AACT;AAEA,SAAS,KAAA,CACP,SAAA,EACA,QAAA,EACA,EAAA,EACA,EAAA,EACa;AACb,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,eAAA,CAAgB,MAAA,EAAQ,GAAG,CAAA;AAC9C,EAAA,CAAA,CAAE,YAAA,CAAa,gBAAgB,SAAS,CAAA;AACxC,EAAA,CAAA,CAAE,SAAA,CAAU,IAAI,gBAAgB,CAAA;AAChC,EAAA,IAAI,QAAA,EAAU,CAAA,CAAE,YAAA,CAAa,WAAA,EAAa,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,CAAG,CAAA;AAC3E,EAAA,OAAO,CAAA;AACT;AAEA,SAAS,aAAA,CACP,MAAA,EACA,KAAA,EACAA,KAAAA,EACA,IAAA,EACoB;AACpB,EAAA,MAAM,QAAA,GAAY,MAAM,QAAA,IAAuB,CAAA;AAC/C,EAAA,IAAI,MAAA,CAAO,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,CAAA,GAAI,KAAA;AACV,IAAA,MAAM,EAAA,GAAK,CAAA,CAAE,CAAA,GAAI,CAAA,CAAE,KAAA,GAAQ,CAAA;AAC3B,IAAA,MAAM,EAAA,GAAK,CAAA,CAAE,CAAA,GAAI,CAAA,CAAE,MAAA,GAAS,CAAA;AAC5B,IAAA,MAAM,IAAI,KAAA,CAAM,MAAA,CAAO,EAAA,EAAI,QAAA,EAAU,IAAI,EAAE,CAAA;AAC3C,IAAA,CAAA,CAAE,SAAA,GAAY;AAAA,eAAA,EACD,CAAA,CAAE,CAAC,CAAA,KAAA,EAAQ,CAAA,CAAE,CAAC,CAAA,SAAA,EAAY,CAAA,CAAE,KAAK,CAAA,UAAA,EAAa,CAAA,CAAE,MAAM,CAAA,MAAA,EAAS,EAAE,YAAY,CAAA;AAAA,cAAA,EAC9E,EAAE,IAAI,CAAA,UAAA,EAAa,EAAE,MAAM,CAAA,gBAAA,EAAmB,EAAE,WAAW,CAAA;AAAA,MAAA,EAEnE,EAAE,KAAA,GACE,CAAA,SAAA,EAAY,EAAE,CAAA,KAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,mBAAA,EACnB,CAAA,CAAE,SAAS,CAAA,0BAAA,EAA6B,CAAA,CAAE,UAAU,CAAA,EAAA,EAAK,SAAA,CAAU,CAAA,CAAE,KAAK,CAAC,CAAA,OAAA,CAAA,GACpF,EACN;AAAA,MAAA,EAEE,CAAA,CAAE,WACE,CAAA,SAAA,EAAY,EAAE,QAAQ,EAAA,GAAK,CAAA,CAAE,YAAY,CAAC,CAAA;AAAA,kDAAA,EACF,CAAA,CAAE,UAAU,CAAA,gBAAA,EAAmB,SAAA,CAAU,EAAE,QAAQ,CAAC,YAC5F,EACN;AAAA,IAAA,CAAA;AAEF,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,MAAM,CAAA,GAAI,KAAA;AACV,IAAA,MAAM,CAAA,GAAI,MAAM,MAAA,CAAO,EAAA,EAAI,UAAU,CAAA,CAAE,EAAA,EAAI,EAAE,EAAE,CAAA;AAC/C,IAAA,CAAA,CAAE,SAAA,GAAY;AAAA,kBAAA,EACE,CAAA,CAAE,EAAE,CAAA,MAAA,EAAS,CAAA,CAAE,EAAE,CAAA,KAAA,EAAQ,CAAA,CAAE,CAAC,CAAA,QAAA,EAAW,CAAA,CAAE,IAAI,CAAA,UAAA,EAAa,EAAE,MAAM,CAAA;AAAA,sBAAA,EAC9D,EAAE,WAAW,CAAA;AAAA,MAAA,EAE7B,CAAA,CAAE,QACE,CAAA,SAAA,EAAY,CAAA,CAAE,EAAE,CAAA,KAAA,EAAQ,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,mBAAA,EACvB,CAAA,CAAE,SAAS,CAAA,0BAAA,EAA6B,CAAA,CAAE,UAAU,CAAA,EAAA,EAAK,SAAA,CAAU,CAAA,CAAE,KAAK,CAAC,CAAA,OAAA,CAAA,GACpF,EACN;AAAA,IAAA,CAAA;AAEF,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,CAAA,GAAI,KAAA;AACV,IAAA,MAAM,MAAA,GAAS,iBAAA,CAAkB,CAAA,EAAGA,KAAAA,EAAM,IAAI,CAAA;AAC9C,IAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,IAAA,MAAM,IAAI,KAAA,CAAM,MAAA,CAAO,EAAA,EAAI,CAAA,EAAG,GAAG,CAAC,CAAA;AAClC,IAAA,CAAA,CAAE,KAAA,CAAM,QAAQ,CAAA,CAAE,MAAA;AAClB,IAAA,MAAM,OAAO,CAAA,CAAE,eAAA,GACX,CAAA,kBAAA,EAAqB,CAAA,CAAE,eAAe,CAAA,CAAA,CAAA,GACtC,EAAA;AACJ,IAAA,MAAM,MAAA,GAAS,YAAA,CAAa,CAAA,CAAE,SAAA,EAAW,OAAO,CAAA;AAChD,IAAA,MAAM,IAAA,GAAO,YAAA,CAAa,CAAA,CAAE,OAAA,EAAS,KAAK,CAAA;AAC1C,IAAA,MAAM,KAAA,GAAQ,CAAA,EAAG,MAAA,GAAS,CAAA,cAAA,EAAiB,MAAM,CAAA,CAAA,CAAA,GAAM,EAAE,CAAA,CAAA,EAAI,IAAA,GAAO,CAAA,YAAA,EAAe,IAAI,CAAA,CAAA,CAAA,GAAM,EAAE,CAAA,CAAA;AAC/F,IAAA,CAAA,CAAE,SAAA,GAAY,CAAA,UAAA,EAAa,MAAA,CAAO,EAAE,CAAA,MAAA,EAAS,MAAA,CAAO,EAAE,CAAA,MAAA,EAAS,MAAA,CAAO,EAAE,CAAA,MAAA,EAAS,MAAA,CAAO,EAAE,CAAA;AAAA,0CAAA,EAClD,CAAA,CAAE,WAAW,CAAA,EAAA,EAAK,IAAI,IAAI,KAAK,CAAA,GAAA,CAAA;AACvE,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,OAAA,EAAS;AAC3B,IAAA,MAAM,CAAA,GAAI,KAAA;AACV,IAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,CAAA,EAAGA,KAAAA,EAAM,IAAI,CAAA;AAC/C,IAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,IAAA,MAAM,IAAI,KAAA,CAAM,MAAA,CAAO,EAAA,EAAI,CAAA,EAAG,GAAG,CAAC,CAAA;AAClC,IAAA,CAAA,CAAE,KAAA,CAAM,QAAQ,CAAA,CAAE,MAAA;AAClB,IAAA,MAAM,OAAO,CAAA,CAAE,eAAA,GACX,CAAA,kBAAA,EAAqB,CAAA,CAAE,eAAe,CAAA,CAAA,CAAA,GACtC,EAAA;AACJ,IAAA,MAAM,IAAA,GAAA,CAAQ,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,EAAA,IAAM,CAAA;AACvC,IAAA,MAAM,IAAA,GAAA,CAAQ,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,EAAA,IAAM,CAAA;AACvC,IAAA,MAAM,QAAA,GAAA,CAAY,CAAA,CAAE,SAAA,IAAa,CAAA,MAAO,CAAA;AACxC,IAAA,MAAM,MAAA,GAAS,YAAA,CAAa,CAAA,CAAE,SAAA,IAAa,QAAQ,OAAO,CAAA;AAC1D,IAAA,MAAM,IAAA,GAAO,YAAA,CAAa,CAAA,CAAE,OAAA,IAAW,SAAS,KAAK,CAAA;AACrD,IAAA,MAAM,KAAA,GAAQ,CAAA,EAAG,MAAA,GAAS,CAAA,cAAA,EAAiB,MAAM,CAAA,CAAA,CAAA,GAAM,EAAE,CAAA,CAAA,EAAI,IAAA,GAAO,CAAA,YAAA,EAAe,IAAI,CAAA,CAAA,CAAA,GAAM,EAAE,CAAA,CAAA;AAC/F,IAAA,IAAI,QAAA;AACJ,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,EAAA,GAAK,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,EAAA;AAC9B,MAAA,MAAM,EAAA,GAAK,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,EAAA;AAC9B,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,KAAA,CAAM,EAAA,EAAI,EAAE,CAAA,IAAK,CAAA;AAClC,MAAA,MAAM,EAAA,GAAK,CAAC,EAAA,GAAK,GAAA;AACjB,MAAA,MAAM,KAAK,EAAA,GAAK,GAAA;AAChB,MAAA,MAAM,GAAA,GAAM,IAAA,GAAO,EAAA,IAAM,CAAA,CAAE,SAAA,IAAa,CAAA,CAAA;AACxC,MAAA,MAAM,GAAA,GAAM,IAAA,GAAO,EAAA,IAAM,CAAA,CAAE,SAAA,IAAa,CAAA,CAAA;AACxC,MAAA,QAAA,GAAW,CAAA,WAAA,EAAc,OAAO,EAAE,CAAA,CAAA,EAAI,OAAO,EAAE,CAAA,GAAA,EAAM,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,EAAI,OAAO,EAAE,CAAA,CAAA,EAAI,OAAO,EAAE,CAAA,kDAAA,EAAqD,EAAE,WAAW,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,GAAA,CAAA;AAAA,IAC/K,CAAA,MAAO;AACL,MAAA,QAAA,GAAW,aAAa,MAAA,CAAO,EAAE,SAAS,MAAA,CAAO,EAAE,SAAS,MAAA,CAAO,EAAE,CAAA,MAAA,EAAS,MAAA,CAAO,EAAE,CAAA,sCAAA,EAAyC,CAAA,CAAE,WAAW,CAAA,EAAA,EAAK,IAAI,IAAI,KAAK,CAAA,GAAA,CAAA;AAAA,IACjK;AACA,IAAA,CAAA,CAAE,SAAA,GAAY;AAAA,MAAA,EACV,QAAQ;AAAA,MAAA,EAER,EAAE,KAAA,GACE,CAAA;AAAA,iBAAA,EACO,IAAA,GAAO,EAAE,CAAA,KAAA,EAAQ,IAAA,GAAO,EAAE,CAAA;AAAA,iBAAA,EAC1B,IAAI,CAAA,KAAA,EAAQ,IAAA,GAAO,CAAC,CAAA,kFAAA,EAAqF,CAAA,CAAE,UAAU,CAAA,EAAA,EAAK,SAAA,CAAU,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,UAAA,CAAA,GAEnJ,EACN;AAAA,IAAA,CAAA;AAEF,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,CAAA,GAAI,KAAA;AACV,IAAA,MAAM,CAAA,GAAI,MAAM,MAAA,CAAO,EAAA,EAAI,UAAU,CAAA,CAAE,CAAA,EAAG,EAAE,CAAC,CAAA;AAC7C,IAAA,CAAA,CAAE,SAAA,GAAY,CAAA,SAAA,EAAY,CAAA,CAAE,CAAC,CAAA,KAAA,EAAQ,CAAA,CAAE,CAAC,CAAA,aAAA,EAAgB,CAAA,CAAE,QAAQ,CAAA,eAAA,EAAkB,CAAA,CAAE,UAAU,CAAA;AAAA,YAAA,EACtF,CAAA,CAAE,KAAK,CAAA,eAAA,EAAkB,CAAA,CAAE,UAAU,CAAA,EAAA,EAAK,SAAA,CAAU,CAAA,CAAE,OAAO,CAAC,CAAA,OAAA,CAAA;AACxE,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,OAAA,EAAS;AAC3B,IAAA,MAAM,CAAA,GAAI,KAAA;AACV,IAAA,MAAM,EAAA,GAAK,CAAA,CAAE,CAAA,GAAI,CAAA,CAAE,KAAA,GAAQ,CAAA;AAC3B,IAAA,MAAM,EAAA,GAAK,CAAA,CAAE,CAAA,GAAI,CAAA,CAAE,MAAA,GAAS,CAAA;AAC5B,IAAA,MAAM,IAAI,KAAA,CAAM,MAAA,CAAO,EAAA,EAAI,QAAA,EAAU,IAAI,EAAE,CAAA;AAG3C,IAAA,MAAM,QAAA,GAAW,aAAa,CAAA,CAAE,OAAA,EAAS,QAAO,EAAG,MAAA,IAAU,EAAE,CAAA;AAC/D,IAAA,MAAM,OAAO,QAAA,CAAS,MAAA,KAAW,UAAA,GAAc,QAAA,CAAS,QAAQ,EAAA,GAAM,EAAA;AACtE,IAAA,CAAA,CAAE,SAAA,GAAY,IAAA,GACV,CAAA,aAAA,EAAgB,SAAA,CAAU,IAAI,CAAC,CAAA,KAAA,EAAQ,CAAA,CAAE,CAAC,CAAA,KAAA,EAAQ,CAAA,CAAE,CAAC,CAAA,SAAA,EAAY,EAAE,KAAK,CAAA;AAAA,cAAA,EAChE,CAAA,CAAE,MAAM,CAAA,uBAAA,EAA0B,CAAA,CAAE,mBAAmB,CAAA,WAAA,EAAc,CAAA,CAAE,OAAO,CAAA,IAAA,CAAA,GACtF,CAAA,SAAA,EAAY,EAAE,CAAC,CAAA,KAAA,EAAQ,EAAE,CAAC,CAAA,SAAA,EAAY,EAAE,KAAK,CAAA,UAAA,EAAa,EAAE,MAAM,CAAA;AAAA,oFAAA,CAAA;AAEtE,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,CAAA,GAAI,KAAA;AACV,IAAA,MAAM,CAAA,GAAI,MAAM,MAAA,CAAO,EAAA,EAAI,UAAU,CAAA,CAAE,CAAA,EAAG,EAAE,CAAC,CAAA;AAC7C,IAAA,MAAM,OAAO,CAAA,CAAE,eAAA,GACX,CAAA,kBAAA,EAAqB,CAAA,CAAE,eAAe,CAAA,CAAA,CAAA,GACtC,EAAA;AACJ,IAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,CAAA,IAAK,CAAA,CAAE,CAAA,GAAI,CAAA,qBAAA,EAAwB,CAAA,CAAE,CAAC,CAAA,CAAA,EAAI,CAAA,CAAE,CAAC,CAAA,EAAA,CAAA,GAAO,EAAA;AACpE,IAAA,CAAA,CAAE,SAAA,GAAY,YAAY,SAAA,CAAU,CAAA,CAAE,CAAC,CAAC,CAAA,QAAA,EAAW,EAAE,IAAI,CAAA,UAAA,EAAa,EAAE,MAAM,CAAA,gBAAA,EAAmB,EAAE,WAAW,CAAA,EAAA,EAAK,IAAI,CAAA,UAAA,EAAa,CAAA,CAAE,OAAO,CAAA,EAAA,EAAK,KAAK,CAAA,wBAAA,CAAA;AACvJ,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,CAAO,SAAS,SAAA,EAAW;AAC7B,IAAA,MAAM,EAAA,GAAK,KAAA;AACX,IAAA,MAAM,IAAI,KAAA,CAAM,MAAA,CAAO,EAAA,EAAI,QAAA,EAAU,GAAG,CAAC,CAAA;AACzC,IAAA,CAAA,CAAE,YAAY,CAAA,iBAAA,EAAoB,SAAA,CAAU,EAAA,CAAG,MAAM,CAAC,CAAA,QAAA,EAAW,EAAA,CAAG,IAAI,CAAA,UAAA,EAAa,GAAG,MAAM,CAAA,gBAAA,EAAmB,GAAG,WAAW,CAAA,WAAA,EAAc,GAAG,OAAO,CAAA,yBAAA,CAAA;AACvJ,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;AAMO,SAASM,aACd,GAAA,EACM;AACN,EAAA,WAAA,CAAa,UAAU,GAAG,CAAA;AAC5B;AACO,SAASC,YAAAA,GAAoB;AAClC,EAAA,WAAA,CAAa,QAAQ,CAAA;AACvB;;;ACl5CA,IAAI,MAAA,GAA6B,IAAA;AACjC,IAAI,WAAA,GAAkC,IAAA;AACtC,IAAI,QAAA,GAAoC,IAAA;AACxC,IAAI,YAAA,GAA8B,IAAA;AAE3B,SAAS,eAAA,CACd,MACA,SAAA,EACM;AACN,EAAA,MAAA,GAAS,IAAA;AACT,EAAA,WAAA,GAAc,SAAA;AACd,EAAA,QAAA,GAAW,QAAA,CAAS,cAAA;AAAA,IAClB;AAAA,GACF;AACA,EAAA,SAAA,CAAUC,OAAM,CAAA;AAChB,EAAA,IAAA,CAAK,gBAAA,CAAiB,SAAS,OAAO,CAAA;AACtC,EAAA,IAAA,CAAK,gBAAA,CAAiB,aAAa,WAAW,CAAA;AAC9C,EAAA,IAAA,CAAK,gBAAA,CAAiB,YAAY,UAAU,CAAA;AAC5C,EAAA,IAAA,CAAK,gBAAA,CAAiB,aAAa,WAAW,CAAA;AAC9C,EAAA,IAAA,CAAK,gBAAA,CAAiB,QAAQ,MAAM,CAAA;AACpC,EAAA,IAAA,CAAK,gBAAA,CAAiB,WAAW,SAAS,CAAA;AAC1C,EAAA,WAAA,EAAa,gBAAA,CAAiB,SAAS,YAAY,CAAA;AACnD,EAAA,QAAA,EAAU,gBAAA,CAAiB,SAASA,OAAM,CAAA;AAC1C,EAAA,QAAA,EAAU,gBAAA,CAAiB,SAAA,EAAW,CAAC,CAAA,KAAM;AAC3C,IAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,IAAY,QAAA,EAAU;AAClC,MAAA,QAAA,CAAS,KAAA,GAAQ,EAAA;AACjB,MAAAA,OAAAA,EAAO;AAAA,IACT;AAAA,EACF,CAAC,CAAA;AACD,EAAAA,OAAAA,EAAO;AACT;AAEA,SAAS,WAAW,CAAA,EAAmB;AACrC,EAAA,OAAO,CAAA,CACJ,OAAA,CAAQ,IAAA,EAAM,OAAO,EACrB,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,QAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,OAAA,CAAQ,MAAM,QAAQ,CAAA;AAC3B;AAEO,SAAS,qBAAqB,EAAA,EAA8B;AACjE,EAAA,MAAM,CAAA,GAAI,EAAA;AAKV,EAAA,MAAM,OAAA,GAAU,CAAA,CAAE,IAAA,EAAM,IAAA,EAAK,IAAK,CAAA,CAAE,KAAA,EAAO,IAAA,EAAK,IAAK,CAAA,CAAE,OAAA,EAAS,IAAA,EAAK;AACrE,EAAA,OAAO,OAAA,GAAU,UAAU,EAAA,CAAG,EAAA;AAChC;AAEA,SAAS,aAAA,CAAc,IAAsB,KAAA,EAAwB;AACnE,EAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AACnB,EAAA,MAAM,CAAA,GAAI,EAAA;AAKV,EAAA,MAAM,WAAW,CAAC,EAAA,CAAG,IAAI,EAAA,CAAG,IAAA,EAAM,EAAE,IAAA,EAAM,CAAA,CAAE,OAAO,CAAA,CAAE,OAAO,EACzD,MAAA,CAAO,OAAO,EACd,IAAA,CAAK,GAAG,EACR,WAAA,EAAY;AACf,EAAA,OAAO,QAAA,CAAS,SAAS,KAAK,CAAA;AAChC;AAEA,SAASA,OAAAA,GAAe;AACtB,EAAA,IAAI,CAAC,MAAA,EAAQ;AACb,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,IAAO,GAAA,CAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACrC,IAAA,MAAA,CAAO,SAAA,GACL,8GAAA;AACF,IAAA;AAAA,EACF;AACA,EAAA,MAAM,MAAM,YAAA,EAAa;AACzB,EAAA,MAAM,QAAQ,QAAA,EAAU,KAAA,CAAM,IAAA,EAAK,CAAE,aAAY,IAAK,EAAA;AACtD,EAAA,MAAM,cAAc,CAAC,GAAG,GAAA,CAAI,QAAQ,EAAE,OAAA,EAAQ;AAC9C,EAAA,MAAM,KAAA,GAAQ,KAAA,GACV,WAAA,CAAY,MAAA,CAAO,CAAC,OAAO,aAAA,CAAc,EAAA,EAAI,KAAK,CAAC,CAAA,GACnD,WAAA;AACJ,EAAA,MAAM,SAAA,GACJ,IAAI,IAAA,KAAS,UAAA,GACT,oEAAgD,GAAA,CAAI,UAAA,CAAW,MAAM,CAAA,uEAAA,CAAA,GACrE,EAAA;AACN,EAAA,MAAM,UAAA,GAAa,KAAA,GACf,CAAA,oDAAA,EAA6C,UAAA,CAAW,KAAK,CAAC,CAAA,OAAA,EAAO,KAAA,CAAM,MAAM,CAAA,CAAA,EAAI,GAAA,CAAI,QAAA,CAAS,MAAM,CAAA,iDAAA,CAAA,GACxG,CAAA,sIAAA,CAAA;AACJ,EAAA,MAAM,QAAA,GACJ,SAAS,KAAA,CAAM,MAAA,KAAW,IACtB,CAAA,+EAAA,EAAkF,UAAA,CAAW,KAAK,CAAC,CAAA,gCAAA,CAAA,GACnG,EAAA;AACN,EAAA,MAAA,CAAO,YACL,UAAA,GACA,SAAA,GACA,WACA,KAAA,CACG,GAAA,CAAI,CAAC,EAAA,KAAO;AACX,IAAA,MAAM,KAAA,GAAQ,iBAAA,CAAkB,GAAA,EAAK,EAAA,CAAG,EAAE,CAAA;AAC1C,IAAA,MAAM,KAAA,GAAQ,qBAAqB,EAAE,CAAA;AACrC,IAAA,MAAM,KAAA,GACJ,UAAU,EAAA,CAAG,EAAA,GACT,8CAA8C,UAAA,CAAW,EAAA,CAAG,EAAE,CAAC,CAAA,OAAA,CAAA,GAC/D,EAAA;AACN,IAAA,OAAO,CAAA,oCAAA,EAAuC,QAAQ,aAAA,GAAgB,EAAE,mBAAmB,UAAA,CAAW,EAAA,CAAG,EAAE,CAAC,CAAA;AAAA;AAAA,uDAAA,EAE3D,UAAA,CAAW,KAAK,CAAC,CAAA,6CAAA,EAAgD,WAAW,EAAA,CAAG,IAAI,CAAC,CAAA,OAAA,EAAU,KAAK,CAAA;AAAA;AAAA,aAAA,CAAA;AAAA,EAGtJ,CAAC,CAAA,CACA,IAAA,CAAK,EAAE,CAAA;AACd;AAEA,SAAS,QAAQ,CAAA,EAAgB;AAC/B,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,MAAM,EAAA,GAAK,MAAA,CAAO,OAAA,CAAqB,2BAA2B,CAAA;AAClE,EAAA,IAAI,CAAC,EAAA,EAAI;AACT,EAAA,MAAM,EAAA,GAAK,EAAA,CAAG,OAAA,CAAQ,MAAA,IAAU,EAAA;AAChC,EAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,eAAe,CAAA,EAAG;AACnC,IAAA,aAAA,CAAc,EAAE,CAAA;AAChB,IAAA;AAAA,EACF;AACA,EAAA,MAAM,EAAA,GAAK,CAAA;AACX,EAAA,IAAI,EAAA,CAAG,QAAA,IAAY,EAAA,CAAG,OAAA,IAAW,GAAG,OAAA,EAAS;AAC3C,IAAA,MAAM,MAAM,YAAA,EAAa;AACzB,IAAA,YAAA,CAAa,kBAAA,CAAmB,GAAA,EAAK,EAAE,CAAC,CAAA;AACxC,IAAA;AAAA,EACF;AACA,EAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAW,IAAI,CAAA;AACjD;AAEA,SAAS,YAAY,CAAA,EAAoB;AACvC,EAAA,MAAM,EAAA,GAAM,EAAE,MAAA,CAAuB,OAAA;AAAA,IACnC;AAAA,GACF;AACA,EAAA,IAAI,CAAC,EAAA,EAAI;AACT,EAAA,YAAA,GAAe,EAAA,CAAG,QAAQ,MAAA,IAAU,IAAA;AACpC,EAAA,IAAI,EAAE,YAAA,EAAc;AAClB,IAAA,CAAA,CAAE,aAAa,aAAA,GAAgB,MAAA;AAC/B,IAAA,CAAA,CAAE,YAAA,CAAa,OAAA,CAAQ,YAAA,EAAc,YAAA,IAAgB,EAAE,CAAA;AAAA,EACzD;AACA,EAAA,EAAA,CAAG,SAAA,CAAU,IAAI,aAAa,CAAA;AAChC;AAEA,SAAS,WAAW,CAAA,EAAoB;AACtC,EAAA,IAAI,CAAC,YAAA,EAAc;AACnB,EAAA,CAAA,CAAE,cAAA,EAAe;AACjB,EAAA,IAAI,CAAA,CAAE,YAAA,EAAc,CAAA,CAAE,YAAA,CAAa,UAAA,GAAa,MAAA;AAChD,EAAA,MAAM,EAAA,GAAM,EAAE,MAAA,CAAuB,OAAA;AAAA,IACnC;AAAA,GACF;AACA,EAAA,MAAA,EACI,gBAAA,CAAiB,gCAAgC,CAAA,CAClD,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,CAAE,SAAA,CAAU,MAAA,CAAO,eAAA,EAAiB,eAAe,CAAC,CAAA;AACtE,EAAA,IAAI,CAAC,EAAA,EAAI;AACT,EAAA,MAAM,IAAA,GAAO,GAAG,qBAAA,EAAsB;AACtC,EAAA,MAAM,QAAQ,CAAA,CAAE,OAAA,GAAU,IAAA,CAAK,GAAA,GAAM,KAAK,MAAA,GAAS,CAAA;AACnD,EAAA,EAAA,CAAG,SAAA,CAAU,GAAA,CAAI,KAAA,GAAQ,eAAA,GAAkB,eAAe,CAAA;AAC5D;AAEA,SAAS,YAAY,CAAA,EAAoB;AACvC,EAAA,MAAM,EAAA,GAAM,EAAE,MAAA,CAAuB,OAAA;AAAA,IACnC;AAAA,GACF;AACA,EAAA,EAAA,EAAI,SAAA,CAAU,MAAA,CAAO,eAAA,EAAiB,eAAe,CAAA;AACvD;AAEA,SAAS,OAAO,CAAA,EAAoB;AAClC,EAAA,IAAI,CAAC,YAAA,EAAc;AACnB,EAAA,CAAA,CAAE,cAAA,EAAe;AACjB,EAAA,MAAM,EAAA,GAAM,EAAE,MAAA,CAAuB,OAAA;AAAA,IACnC;AAAA,GACF;AACA,EAAA,IAAI,CAAC,EAAA,EAAI;AACT,EAAA,MAAM,QAAA,GAAW,EAAA,CAAG,OAAA,CAAQ,MAAA,IAAU,EAAA;AACtC,EAAA,IAAI,CAAC,QAAA,IAAY,QAAA,KAAa,YAAA,EAAc;AAC5C,EAAA,MAAM,IAAA,GAAO,GAAG,qBAAA,EAAsB;AACtC,EAAA,MAAM,QAAQ,CAAA,CAAE,OAAA,GAAU,IAAA,CAAK,GAAA,GAAM,KAAK,MAAA,GAAS,CAAA;AACnD,EAAA,MAAM,oBAAA,GAA2C,QAAQ,QAAA,GAAW,OAAA;AACpE,EAAA,MAAM,kBAAA,GACJ,oBAAA,KAAyB,QAAA,GAAW,OAAA,GAAU,QAAA;AAChD,EAAA,cAAA,CAAe,YAAA,EAAc,UAAU,kBAAkB,CAAA;AACzD,EAAA,YAAA,GAAe,IAAA;AACjB;AAEA,SAAS,SAAA,GAAkB;AACzB,EAAA,YAAA,GAAe,IAAA;AACf,EAAA,MAAA,EACI,gBAAA,CAAiB,8CAA8C,CAAA,CAChE,OAAA;AAAA,IAAQ,CAAC,CAAA,KACR,CAAA,CAAE,UAAU,MAAA,CAAO,eAAA,EAAiB,iBAAiB,aAAa;AAAA,GACpE;AACJ;AAEA,SAAS,aAAa,CAAA,EAAgB;AACpC,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,OAAA,CAAqB,oBAAoB,CAAA;AAC5D,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,MAAM,IAAA,GAAO,IAAI,OAAA,CAAQ,UAAA;AACzB,EAAA,IAAI,CAAC,IAAA,EAAM;AACX,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,MAAM,EAAA,GAAK,GAAA,CAAI,MAAA,CAAO,KAAA,GAAQ,CAAA;AAC9B,EAAA,MAAM,EAAA,GAAK,GAAA,CAAI,MAAA,CAAO,MAAA,GAAS,CAAA;AAC/B,EAAA,MAAM,EAAA,GAAK,gBAAgB,IAAI,CAAA;AAC/B,EAAA,MAAM,IAAA,GAAO,kBAAA,CAAmB,IAAA,EAAM,EAAA,EAAI,IAAI,EAAE,CAAA;AAChD,EAAA,IAAI,IAAA,aAAiB,IAAI,CAAA;AAC3B;AAEA,SAAS,kBAAA,CACP,IAAA,EACA,EAAA,EACA,EAAA,EACA,EAAA,EACyB;AACzB,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,MAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,MAAA;AAAA,QACN,EAAA;AAAA,QACA,QAAA,EAAU,CAAA;AAAA,QACV,aAAa,EAAC;AAAA,QACd,QAAQ,EAAC;AAAA,QACT,GAAG,EAAA,GAAK,EAAA;AAAA,QACR,GAAG,EAAA,GAAK,EAAA;AAAA,QACR,KAAA,EAAO,GAAA;AAAA,QACP,MAAA,EAAQ,EAAA;AAAA,QACR,IAAA,EAAM,SAAA;AAAA,QACN,MAAA,EAAQ,SAAA;AAAA,QACR,WAAA,EAAa,GAAA;AAAA,QACb,YAAA,EAAc,CAAA;AAAA,QACd,KAAA,EAAO,EAAA;AAAA,QACP,UAAA,EAAY,SAAA;AAAA,QACZ,SAAA,EAAW;AAAA,OACb;AAAA,IACF,KAAK,QAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,QAAA;AAAA,QACN,EAAA;AAAA,QACA,QAAA,EAAU,CAAA;AAAA,QACV,aAAa,EAAC;AAAA,QACd,QAAQ,EAAC;AAAA,QACT,EAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA,EAAG,EAAA;AAAA,QACH,IAAA,EAAM,SAAA;AAAA,QACN,MAAA,EAAQ,SAAA;AAAA,QACR,WAAA,EAAa,GAAA;AAAA,QACb,KAAA,EAAO,EAAA;AAAA,QACP,UAAA,EAAY,SAAA;AAAA,QACZ,SAAA,EAAW;AAAA,OACb;AAAA,IACF,KAAK,MAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,MAAA;AAAA,QACN,EAAA;AAAA,QACA,QAAA,EAAU,CAAA;AAAA,QACV,aAAa,EAAC;AAAA,QACd,QAAQ,EAAC;AAAA,QACT,IAAI,EAAA,GAAK,EAAA;AAAA,QACT,EAAA,EAAI,EAAA;AAAA,QACJ,IAAI,EAAA,GAAK,EAAA;AAAA,QACT,EAAA,EAAI,EAAA;AAAA,QACJ,MAAA,EAAQ,SAAA;AAAA,QACR,WAAA,EAAa,CAAA;AAAA,QACb,SAAA,EAAW,MAAA;AAAA,QACX,OAAA,EAAS;AAAA,OACX;AAAA,IACF,KAAK,OAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,OAAA;AAAA,QACN,EAAA;AAAA,QACA,QAAA,EAAU,CAAA;AAAA,QACV,aAAa,EAAC;AAAA,QACd,QAAQ,EAAC;AAAA,QACT,IAAI,EAAA,GAAK,GAAA;AAAA,QACT,EAAA,EAAI,EAAA;AAAA,QACJ,IAAI,EAAA,GAAK,GAAA;AAAA,QACT,EAAA,EAAI,EAAA;AAAA,QACJ,MAAA,EAAQ,SAAA;AAAA,QACR,WAAA,EAAa,CAAA;AAAA,QACb,SAAA,EAAW,CAAA;AAAA,QACX,UAAA,EAAY,SAAA;AAAA,QACZ,YAAA,EAAc,CAAA;AAAA,QACd,YAAA,EAAc,CAAA;AAAA,QACd,SAAA,EAAW,MAAA;AAAA,QACX,OAAA,EAAS;AAAA,OACX;AAAA,IACF,KAAK,MAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,MAAA;AAAA,QACN,EAAA;AAAA,QACA,QAAA,EAAU,CAAA;AAAA,QACV,aAAa,EAAC;AAAA,QACd,QAAQ,EAAC;AAAA,QACT,CAAA,EAAG,EAAA;AAAA,QACH,CAAA,EAAG,EAAA;AAAA,QACH,OAAA,EAAS,EAAA;AAAA,QACT,QAAA,EAAU,EAAA;AAAA,QACV,UAAA,EAAY,GAAA;AAAA,QACZ,KAAA,EAAO,SAAA;AAAA,QACP,UAAA,EAAY;AAAA,OACd;AAAA,IACF,KAAK,OAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,OAAA;AAAA,QACN,EAAA;AAAA,QACA,QAAA,EAAU,CAAA;AAAA,QACV,aAAa,EAAC;AAAA,QACd,QAAQ,EAAC;AAAA,QACT,GAAG,EAAA,GAAK,EAAA;AAAA,QACR,GAAG,EAAA,GAAK,EAAA;AAAA,QACR,KAAA,EAAO,GAAA;AAAA,QACP,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS,qBAAA,CAAsB,mBAAA,EAAqB,CAAA;AAAA,QACpD,mBAAA,EAAqB,eAAA;AAAA,QACrB,OAAA,EAAS;AAAA,OACX;AAAA,IACF,KAAK,MAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,MAAA;AAAA,QACN,EAAA;AAAA,QACA,QAAA,EAAU,CAAA;AAAA,QACV,aAAa,EAAC;AAAA,QACd,QAAQ,EAAC;AAAA,QACT,GAAG,EAAA,GAAK,EAAA;AAAA,QACR,GAAG,EAAA,GAAK,EAAA;AAAA,QACR,CAAA,EAAG,wBAAA;AAAA,QACH,IAAA,EAAM,SAAA;AAAA,QACN,MAAA,EAAQ,SAAA;AAAA,QACR,WAAA,EAAa,CAAA;AAAA,QACb,OAAA,EAAS;AAAA,OACX;AAAA,IACF,KAAK,SAAA,EAAW;AACd,MAAA,MAAM,CAAA,GAAI,EAAA;AACV,MAAA,MAAM,KAAA,GAAQ,CAAA;AACd,MAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,EAAE,QAAQ,KAAA,EAAM,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM;AAClD,QAAA,MAAM,IAAK,CAAA,GAAI,IAAA,CAAK,KAAK,CAAA,GAAK,KAAA,GAAQ,KAAK,EAAA,GAAK,CAAA;AAChD,QAAA,OAAO,IAAI,EAAA,GAAK,CAAA,GAAI,KAAK,GAAA,CAAI,CAAC,GAAG,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,EAAA,CAAK,EAAA,GAAK,IAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAG,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAAA,MAClF,CAAC,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACX,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,SAAA;AAAA,QACN,EAAA;AAAA,QACA,QAAA,EAAU,CAAA;AAAA,QACV,aAAa,EAAC;AAAA,QACd,QAAQ,EAAC;AAAA,QACT,MAAA,EAAQ,GAAA;AAAA,QACR,IAAA,EAAM,SAAA;AAAA,QACN,MAAA,EAAQ,SAAA;AAAA,QACR,WAAA,EAAa,GAAA;AAAA,QACb,OAAA,EAAS;AAAA,OACX;AAAA,IACF;AAAA,IACA;AACE,MAAA,OAAO,IAAA;AAAA;AAEb;;;ACtVO,SAAS,mBAAmB,IAAA,EAAyC;AAC1E,EAAA,MAAM,SAAS,QAAA,CAAS,aAAA;AACxB,EAAA,IAAI,EAAE,kBAAkB,WAAA,CAAA,IAAgB,CAAC,KAAK,QAAA,CAAS,MAAM,GAAG,OAAO,IAAA;AACvE,EAAA,MAAM,QAAA,GAAW,iBAAiB,MAAM,CAAA;AACxC,EAAA,IAAI,CAAC,UAAU,OAAO,IAAA;AACtB,EAAA,IAAI,cAAA,GAAgC,IAAA;AACpC,EAAA,IAAI,YAAA,GAA8B,IAAA;AAClC,EAAA,IACE,MAAA,YAAkB,gBAAA,IAClB,MAAA,YAAkB,mBAAA,EAClB;AAGA,IAAA,IAAI;AACF,MAAA,cAAA,GAAiB,MAAA,CAAO,cAAA;AACxB,MAAA,YAAA,GAAe,MAAA,CAAO,YAAA;AAAA,IACxB,CAAA,CAAA,MAAQ;AAAA,IAER;AAAA,EACF;AACA,EAAA,OAAO,EAAE,QAAA,EAAU,cAAA,EAAgB,YAAA,EAAa;AAClD;AAEO,SAAS,kBAAA,CACd,MACAR,KAAAA,EACM;AACN,EAAA,IAAI,CAACA,KAAAA,EAAM;AACX,EAAA,IAAI,MAAA;AACJ,EAAA,IAAI;AACF,IAAA,MAAA,GAAS,IAAA,CAAK,aAAA,CAA2BA,KAAAA,CAAK,QAAQ,CAAA;AAAA,EACxD,CAAA,CAAA,MAAQ;AACN,IAAA;AAAA,EACF;AACA,EAAA,IAAI,CAAC,MAAA,EAAQ;AACb,EAAA,IAAI;AACF,IAAA,MAAA,CAAO,KAAA,CAAM,EAAE,aAAA,EAAe,IAAA,EAAM,CAAA;AAAA,EACtC,CAAA,CAAA,MAAQ;AACN,IAAA;AAAA,EACF;AACA,EAAA,IAAA,CACG,MAAA,YAAkB,oBACjB,MAAA,YAAkB,mBAAA,KACpBA,MAAK,cAAA,KAAmB,IAAA,IACxBA,KAAAA,CAAK,YAAA,KAAiB,IAAA,EACtB;AACA,IAAA,IAAI;AACF,MAAA,MAAA,CAAO,iBAAA,CAAkBA,KAAAA,CAAK,cAAA,EAAgBA,KAAAA,CAAK,YAAY,CAAA;AAAA,IACjE,CAAA,CAAA,MAAQ;AAAA,IAER;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,EAAA,EAAgC;AACxD,EAAA,MAAM,OAAA,GAAU,GAAG,OAAA,CAAQ,OAAA;AAC3B,EAAA,IAAI,YAAY,MAAA,EAAW;AACzB,IAAA,MAAM,GAAA,GAAM,EAAA,CAAG,OAAA,CAAQ,WAAA,EAAY;AACnC,IAAA,MAAM,IAAA,GAAO,EAAA,YAAc,gBAAA,GAAmB,EAAA,CAAG,IAAA,GAAO,EAAA;AACxD,IAAA,MAAM,MAAA,GAAS,UAAU,OAAO,CAAA;AAChC,IAAA,IAAI,IAAA;AACF,MAAA,OAAO,GAAG,GAAG,CAAA,OAAA,EAAU,UAAU,IAAI,CAAC,qBAAqB,MAAM,CAAA,EAAA,CAAA;AACnE,IAAA,OAAO,CAAA,EAAG,GAAG,CAAA,gBAAA,EAAmB,MAAM,CAAA,EAAA,CAAA;AAAA,EACxC;AACA,EAAA,IAAI,GAAG,EAAA,EAAI,OAAO,IAAI,SAAA,CAAU,EAAA,CAAG,EAAE,CAAC,CAAA,CAAA;AACtC,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,UAAU,CAAA,EAAmB;AACpC,EAAA,MAAM,EAAA,GAAM,WAA4D,GAAA,EACpE,MAAA;AACJ,EAAA,IAAI,OAAO,EAAA,KAAO,UAAA,EAAY,OAAO,GAAG,CAAC,CAAA;AAEzC,EAAA,OAAO,CAAA,CAAE,OAAA,CAAQ,qCAAA,EAAuC,MAAM,CAAA;AAChE;;;AClFA,SAAS,YAAY,EAAA,EAAmC;AACtD,EAAA,IAAI,EAAA,CAAG,IAAA,KAAS,MAAA,IAAU,EAAA,CAAG,IAAA,KAAS,OAAA;AACpC,IAAA,OAAO,EAAE,CAAA,EAAG,EAAA,CAAG,CAAA,EAAG,CAAA,EAAG,EAAA,CAAG,CAAA,EAAG,CAAA,EAAG,EAAA,CAAG,KAAA,EAAO,CAAA,EAAG,EAAA,CAAG,MAAA,EAAO;AACvD,EAAA,IAAI,GAAG,IAAA,KAAS,QAAA;AACd,IAAA,OAAO,EAAE,CAAA,EAAG,EAAA,CAAG,KAAK,EAAA,CAAG,CAAA,EAAG,GAAG,EAAA,CAAG,EAAA,GAAK,EAAA,CAAG,CAAA,EAAG,GAAG,EAAA,CAAG,CAAA,GAAI,GAAG,CAAA,EAAG,EAAA,CAAG,IAAI,CAAA,EAAE;AACtE,EAAA,IAAI,GAAG,IAAA,KAAS,MAAA;AACd,IAAA,OAAO;AAAA,MACL,CAAA,EAAG,GAAG,CAAA,GAAI,EAAA;AAAA,MACV,CAAA,EAAG,EAAA,CAAG,CAAA,IAAK,EAAA,CAAG,QAAA,IAAY,EAAA,CAAA;AAAA,MAC1B,CAAA,EAAG,EAAA;AAAA,MACH,CAAA,EAAG,GAAG,QAAA,IAAY;AAAA,KACpB;AACF,EAAA,IAAI,EAAA,CAAG,IAAA,KAAS,MAAA,IAAU,EAAA,CAAG,SAAS,OAAA,EAAS;AAC7C,IAAA,IACE,OAAO,EAAA,CAAG,EAAA,KAAO,QAAA,IACjB,OAAO,EAAA,CAAG,EAAA,KAAO,QAAA,IACjB,OAAO,EAAA,CAAG,EAAA,KAAO,QAAA,IACjB,OAAO,GAAG,EAAA,KAAO,QAAA;AAEjB,MAAA,OAAO,IAAA;AACT,IAAA,OAAO;AAAA,MACL,GAAG,IAAA,CAAK,GAAA,CAAI,EAAA,CAAG,EAAA,EAAI,GAAG,EAAE,CAAA;AAAA,MACxB,GAAG,IAAA,CAAK,GAAA,CAAI,EAAA,CAAG,EAAA,EAAI,GAAG,EAAE,CAAA;AAAA,MACxB,GAAG,IAAA,CAAK,GAAA,CAAI,EAAA,CAAG,EAAA,GAAK,GAAG,EAAE,CAAA;AAAA,MACzB,GAAG,IAAA,CAAK,GAAA,CAAI,EAAA,CAAG,EAAA,GAAK,GAAG,EAAE;AAAA,KAC3B;AAAA,EACF;AACA,EAAA,IAAI,EAAA,CAAG,SAAS,SAAA,EAAW;AACzB,IAAA,IAAI,OAAO,QAAA,EACT,IAAA,GAAO,QAAA,EACP,IAAA,GAAO,WACP,IAAA,GAAO,CAAA,QAAA;AACT,IAAA,IAAI,GAAA,GAAM,KAAA;AACV,IAAA,KAAA,MAAW,QAAQ,EAAA,CAAG,MAAA,CAAO,MAAK,CAAE,KAAA,CAAM,KAAK,CAAA,EAAG;AAChD,MAAA,MAAM,CAAC,GAAG,CAAC,CAAA,GAAI,KAAK,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACzC,MAAA,IAAI,CAAC,OAAO,QAAA,CAAS,CAAC,KAAK,CAAC,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,EAAG;AAChD,MAAA,GAAA,GAAM,IAAA;AACN,MAAA,IAAI,CAAA,GAAI,MAAM,IAAA,GAAO,CAAA;AACrB,MAAA,IAAI,CAAA,GAAI,MAAM,IAAA,GAAO,CAAA;AACrB,MAAA,IAAI,CAAA,GAAI,MAAM,IAAA,GAAO,CAAA;AACrB,MAAA,IAAI,CAAA,GAAI,MAAM,IAAA,GAAO,CAAA;AAAA,IACvB;AACA,IAAA,OAAO,GAAA,GAAM,EAAE,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,IAAA,GAAO,IAAA,EAAM,CAAA,EAAG,IAAA,GAAO,IAAA,EAAK,GAAI,IAAA;AAAA,EACtE;AACA,EAAA,IAAI,GAAG,IAAA,KAAS,MAAA,EAAQ,OAAO,EAAE,GAAG,EAAA,CAAG,CAAA,IAAK,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,IAAK,CAAA,EAAG,CAAA,EAAG,EAAA,EAAI,GAAG,EAAA,EAAG;AAC1E,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,OAAA,CAAQ,EAAA,EAAsB,EAAA,EAAY,EAAA,EAAkB;AACnE,EAAA,IAAI,EAAA,KAAO,CAAA,IAAK,EAAA,KAAO,CAAA,EAAG;AAC1B,EAAA,IAAI,EAAA,CAAG,SAAS,MAAA,IAAU,EAAA,CAAG,SAAS,OAAA,IAAW,EAAA,CAAG,SAAS,MAAA,EAAQ;AACnE,IAAA,iBAAA,CAAkB,EAAA,CAAG,EAAA,EAAI,EAAE,CAAA,EAAG,EAAA,CAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAG,EAAA,CAAG,CAAA,GAAI,EAAA,EAAI,CAAA;AAAA,EACzD,CAAA,MAAA,IAAW,EAAA,CAAG,IAAA,KAAS,QAAA,EAAU;AAC/B,IAAA,iBAAA,CAAkB,EAAA,CAAG,EAAA,EAAI,EAAE,EAAA,EAAI,EAAA,CAAG,EAAA,GAAK,EAAA,EAAI,EAAA,EAAI,EAAA,CAAG,EAAA,GAAK,EAAA,EAAI,CAAA;AAAA,EAC7D,WAAW,EAAA,CAAG,IAAA,KAAS,MAAA,IAAU,EAAA,CAAG,SAAS,OAAA,EAAS;AACpD,IAAA,MAAM,QAAiC,EAAC;AACxC,IAAA,IAAI,OAAO,EAAA,CAAG,EAAA,KAAO,UAAU,KAAA,CAAM,EAAA,GAAK,GAAG,EAAA,GAAK,EAAA;AAClD,IAAA,IAAI,OAAO,EAAA,CAAG,EAAA,KAAO,UAAU,KAAA,CAAM,EAAA,GAAK,GAAG,EAAA,GAAK,EAAA;AAClD,IAAA,IAAI,OAAO,EAAA,CAAG,EAAA,KAAO,UAAU,KAAA,CAAM,EAAA,GAAK,GAAG,EAAA,GAAK,EAAA;AAClD,IAAA,IAAI,OAAO,EAAA,CAAG,EAAA,KAAO,UAAU,KAAA,CAAM,EAAA,GAAK,GAAG,EAAA,GAAK,EAAA;AAClD,IAAA,iBAAA,CAAkB,EAAA,CAAG,IAAI,KAAK,CAAA;AAAA,EAChC,CAAA,MAAA,IAAW,EAAA,CAAG,IAAA,KAAS,MAAA,EAAQ;AAC7B,IAAA,iBAAA,CAAkB,EAAA,CAAG,EAAA,EAAI,EAAE,CAAA,EAAA,CAAI,EAAA,CAAG,CAAA,IAAK,CAAA,IAAK,EAAA,EAAI,CAAA,EAAA,CAAI,EAAA,CAAG,CAAA,IAAK,CAAA,IAAK,IAAI,CAAA;AAAA,EACvE,CAAA,MAAA,IAAW,EAAA,CAAG,IAAA,KAAS,SAAA,EAAW;AAChC,IAAA,MAAM,OAAA,GAAU,EAAA,CAAG,MAAA,CAChB,IAAA,EAAK,CACL,MAAM,KAAK,CAAA,CACX,GAAA,CAAI,CAAC,IAAA,KAAS;AACb,MAAA,MAAM,CAAC,GAAG,CAAC,CAAA,GAAI,KAAK,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACzC,MAAA,IAAI,OAAO,QAAA,CAAS,CAAC,CAAA,IAAK,MAAA,CAAO,SAAS,CAAC,CAAA;AACzC,QAAA,OAAO,CAAA,EAAA,CAAI,CAAA,GAAI,EAAA,EAAI,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,EAAA,CAAK,CAAA,GAAI,EAAA,EAAI,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AACtD,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA,CACA,IAAA,CAAK,GAAG,CAAA;AACX,IAAA,iBAAA,CAAkB,EAAA,CAAG,EAAA,EAAI,EAAE,MAAA,EAAQ,SAAS,CAAA;AAAA,EAC9C;AACF;AAEA,SAAS,wBAAA,GAGN;AACD,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAC;AAClB,EAAA,MAAM,MAAM,YAAA,EAAa;AACzB,EAAA,MAAM,GAAA,GAAM,sBAAsB,GAAG,CAAA;AACrC,EAAA,IAAI,GAAA,CAAI,MAAA,GAAS,CAAA,EAAG,OAAO,EAAC;AAC5B,EAAA,MAAM,MAAmD,EAAC;AAC1D,EAAA,KAAA,MAAW,MAAM,GAAA,EAAK;AACpB,IAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAC/C,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,MAAM,IAAA,GAAO,YAAY,EAAE,CAAA;AAC3B,IAAA,IAAI,MAAM,GAAA,CAAI,IAAA,CAAK,EAAE,EAAA,EAAI,MAAM,CAAA;AAAA,EACjC;AACA,EAAA,OAAO,GAAA;AACT;AAEO,SAAS,cAAc,IAAA,EAA0B;AACtD,EAAA,MAAM,QAAQ,wBAAA,EAAyB;AACvC,EAAA,IAAI,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,OAAO,KAAA;AAC7B,EAAA,MAAM,KAAK,KAAA,CAAM,GAAA,CAAI,CAAC,EAAA,KAAO,EAAA,CAAG,KAAK,CAAC,CAAA;AACtC,EAAA,MAAM,KAAK,KAAA,CAAM,GAAA,CAAI,CAAC,EAAA,KAAO,EAAA,CAAG,KAAK,CAAC,CAAA;AACtC,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,GAAA,CAAI,CAAC,EAAA,KAAO,GAAG,IAAA,CAAK,CAAA,GAAI,EAAA,CAAG,IAAA,CAAK,CAAC,CAAA;AACtD,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,GAAA,CAAI,CAAC,EAAA,KAAO,GAAG,IAAA,CAAK,CAAA,GAAI,EAAA,CAAG,IAAA,CAAK,CAAC,CAAA;AACvD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,GAAG,EAAE,CAAA;AAC3B,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,GAAG,MAAM,CAAA;AAChC,EAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,GAAG,EAAE,CAAA;AAC1B,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,GAAG,OAAO,CAAA;AAClC,EAAA,MAAM,OAAA,GAAA,CAAW,OAAO,KAAA,IAAS,CAAA;AACjC,EAAA,MAAM,OAAA,GAAA,CAAW,MAAM,MAAA,IAAU,CAAA;AACjC,EAAA,KAAA,MAAW,EAAE,EAAA,EAAI,IAAA,EAAK,IAAK,KAAA,EAAO;AAChC,IAAA,IAAI,EAAA,GAAK,CAAA;AACT,IAAA,IAAI,EAAA,GAAK,CAAA;AACT,IAAA,IAAI,IAAA,KAAS,MAAA,EAAQ,EAAA,GAAK,IAAA,GAAO,IAAA,CAAK,CAAA;AAAA,SAAA,IAC7B,SAAS,OAAA,EAAS,EAAA,GAAK,KAAA,IAAS,IAAA,CAAK,IAAI,IAAA,CAAK,CAAA,CAAA;AAAA,SAAA,IAC9C,SAAS,UAAA,EAAY,EAAA,GAAK,WAAW,IAAA,CAAK,CAAA,GAAI,KAAK,CAAA,GAAI,CAAA,CAAA;AAAA,SAAA,IACvD,IAAA,KAAS,KAAA,EAAO,EAAA,GAAK,GAAA,GAAM,IAAA,CAAK,CAAA;AAAA,SAAA,IAChC,SAAS,QAAA,EAAU,EAAA,GAAK,MAAA,IAAU,IAAA,CAAK,IAAI,IAAA,CAAK,CAAA,CAAA;AAAA,SAAA,IAChD,SAAS,UAAA,EAAY,EAAA,GAAK,WAAW,IAAA,CAAK,CAAA,GAAI,KAAK,CAAA,GAAI,CAAA,CAAA;AAChE,IAAA,OAAA,CAAQ,EAAA,EAAI,KAAK,KAAA,CAAM,EAAE,GAAG,IAAA,CAAK,KAAA,CAAM,EAAE,CAAC,CAAA;AAAA,EAC5C;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,mBAAmB,IAAA,EAA+B;AAChE,EAAA,MAAM,QAAQ,wBAAA,EAAyB;AACvC,EAAA,IAAI,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,OAAO,KAAA;AAC7B,EAAA,IAAI,SAAS,YAAA,EAAc;AACzB,IAAA,KAAA,CAAM,KAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,KAAK,CAAA,GAAI,CAAA,CAAE,IAAA,CAAK,CAAA,GAAI,KAAK,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,CAAE,CAAA;AACxE,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,CAAA,GAAI,CAAA;AACxD,IAAA,MAAM,UAAA,GACJ,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,CAAE,IAAA,CAAK,CAAA,GAAI,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,CAAE,KAAK,CAAA,GAAI,CAAA;AACpE,IAAA,MAAM,IAAA,GAAA,CAAQ,UAAA,GAAa,WAAA,KAAgB,KAAA,CAAM,MAAA,GAAS,CAAA,CAAA;AAC1D,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,MAAM,MAAA,GAAS,CAAA,EAAG,KAAK,CAAA,EAAG;AAC5C,MAAA,MAAM,YAAA,GAAe,cAAc,IAAA,GAAO,CAAA;AAC1C,MAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,CAAA,GAAI,CAAA;AAC1D,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAE,EAAA,EAAI,KAAK,KAAA,CAAM,YAAA,GAAe,aAAa,CAAA,EAAG,CAAC,CAAA;AAAA,IAClE;AAAA,EACF,CAAA,MAAO;AACL,IAAA,KAAA,CAAM,KAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,KAAK,CAAA,GAAI,CAAA,CAAE,IAAA,CAAK,CAAA,GAAI,KAAK,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,CAAE,CAAA;AACxE,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,CAAA,GAAI,CAAA;AACxD,IAAA,MAAM,UAAA,GACJ,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,CAAE,IAAA,CAAK,CAAA,GAAI,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,CAAE,KAAK,CAAA,GAAI,CAAA;AACpE,IAAA,MAAM,IAAA,GAAA,CAAQ,UAAA,GAAa,WAAA,KAAgB,KAAA,CAAM,MAAA,GAAS,CAAA,CAAA;AAC1D,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,MAAM,MAAA,GAAS,CAAA,EAAG,KAAK,CAAA,EAAG;AAC5C,MAAA,MAAM,YAAA,GAAe,cAAc,IAAA,GAAO,CAAA;AAC1C,MAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,CAAA,GAAI,CAAA;AAC1D,MAAA,OAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAE,EAAA,EAAI,GAAG,IAAA,CAAK,KAAA,CAAM,YAAA,GAAe,aAAa,CAAC,CAAA;AAAA,IAClE;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;;;AC9HA,IAAI,OAAA,GAA8B,IAAA;AAClC,IAAM,cAAA,uBAAqB,GAAA,EAAY;AACvC,IAAI,mBAAA,GAAsB,KAAA;AAEnB,SAAS,eAAe,IAAA,EAAyB;AACtD,EAAA,OAAA,GAAU,IAAA;AACV,EAAA,SAAA,CAAUQ,OAAM,CAAA;AAChB,EAAA,IAAA,CAAK,gBAAA,CAAiB,SAAS,OAAO,CAAA;AACtC,EAAA,IAAA,CAAK,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACxC,EAAA,IAAA,CAAK,gBAAA,CAAiB,SAASC,QAAO,CAAA;AACtC,EAAA,IAAA,CAAK,gBAAA,CAAiB,WAAW,SAAS,CAAA;AAC1C,EAAA,IAAA,CAAK,gBAAA,CAAiB,oBAAoB,kBAAkB,CAAA;AAC5D,EAAA,IAAA,CAAK,gBAAA,CAAiB,kBAAkB,gBAAgB,CAAA;AACxD,EAAA,IAAA,CAAK,gBAAA,CAAiB,QAAA,EAAU,eAAA,EAAiB,IAAI,CAAA;AACrD,EAAA,IAAA,CAAK,iBAAiB,OAAA,EAAS,aAAA,EAAe,EAAE,OAAA,EAAS,OAAO,CAAA;AAChE,EAAAD,OAAAA,EAAO;AACT;AAEA,SAAS,kBAAA,GAA2B;AAClC,EAAA,mBAAA,GAAsB,IAAA;AACxB;AAEA,SAAS,gBAAA,GAAyB;AAChC,EAAA,mBAAA,GAAsB,KAAA;AACxB;AAEA,SAAS,UAAU,CAAA,EAAwB;AACzC,EAAA,IAAI,CAAA,CAAE,QAAQ,OAAA,EAAS;AACvB,EAAA,IAAI,CAAA,CAAE,eAAe,mBAAA,EAAqB;AAC1C,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,IAAI,EAAE,kBAAkB,gBAAA,CAAA,EAAmB;AAC3C,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,MAAA,CAAO,SAAS,QAAA,EAAU;AACtD,IAAA,MAAA,CAAO,IAAA,EAAK;AAAA,EACd;AACF;AAEA,SAAS,gBAAgB,CAAA,EAAgB;AACvC,EAAA,MAAM,IAAI,CAAA,CAAE,MAAA;AACZ,EAAA,IAAI,EAAE,aAAa,kBAAA,CAAA,EAAqB;AACxC,EAAA,MAAM,IAAA,GAAO,EAAE,OAAA,CAAQ,OAAA;AACvB,EAAA,IAAI,CAAC,IAAA,EAAM;AACX,EAAA,IAAI,CAAA,CAAE,IAAA,EAAM,cAAA,CAAe,MAAA,CAAO,IAAI,CAAA;AAAA,OACjC,cAAA,CAAe,IAAI,IAAI,CAAA;AAC9B;AAEA,SAAS,cAAc,CAAA,EAAqB;AAC1C,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,IAAI,EAAE,kBAAkB,gBAAA,CAAA,EAAmB;AAC3C,EAAA,IAAI,MAAA,CAAO,SAAS,QAAA,EAAU;AAC9B,EAAA,IAAI,QAAA,CAAS,kBAAkB,MAAA,EAAQ;AACvC,EAAA,CAAA,CAAE,cAAA,EAAe;AACjB,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA,IAAK,CAAA;AACpC,EAAA,MAAM,UAAA,GAAa,CAAA,CAAE,QAAA,GAAW,EAAA,GAAK,CAAA;AACrC,EAAA,MAAM,GAAA,GAAM,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,CAAA,GAAI,EAAA;AAC/B,EAAA,MAAM,UAAU,MAAA,CAAO,MAAA,CAAO,KAAK,CAAA,IAAK,CAAA,IAAK,MAAM,IAAA,GAAO,UAAA;AAC1D,EAAA,MAAA,CAAO,KAAA,GAAQ,OAAO,MAAM,CAAA;AAC5B,EAAA,MAAA,CAAO,aAAA,CAAc,IAAI,KAAA,CAAM,OAAA,EAAS,EAAE,OAAA,EAAS,IAAA,EAAM,CAAC,CAAA;AAC5D;AAEA,SAAS,OAAA,CACP,IAAA,EACA,WAAA,EACA,YAAA,EACQ;AACR,EAAA,MAAM,MAAA,GAAS,CAAC,cAAA,CAAe,GAAA,CAAI,IAAI,CAAA;AACvC,EAAA,OAAO,yCAAyC,MAAA,GAAS,MAAA,GAAS,EAAE,CAAA,eAAA,EAAkBE,WAAAA,CAAW,IAAI,CAAC,CAAA;AAAA,8DAAA,EACxC,WAAW,CAAA;AAAA,2CAAA,EAC9B,YAAY,CAAA;AAAA,YAAA,CAAA;AAEzD;AAEA,SAASF,OAAAA,GAAe;AACtB,EAAA,IAAI,CAAC,OAAA,EAAS;AACd,EAAA,MAAM,SAAA,GAAY,mBAAmB,OAAO,CAAA;AAC5C,EAAA,WAAA,EAAY;AACZ,EAAA,kBAAA,CAAmB,SAAS,SAAS,CAAA;AACvC;AAEA,SAASE,YAAW,CAAA,EAAmB;AACrC,EAAA,OAAO,CAAA,CACJ,OAAA,CAAQ,IAAA,EAAM,OAAO,EACrB,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,QAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,OAAA,CAAQ,MAAM,QAAQ,CAAA;AAC3B;AAEA,SAAS,SAAA,CACP,KAAA,EACA,GAAA,EACA,KAAA,EACQ;AACR,EAAA,OAAO,CAAA;AAAA,UAAA,EACGA,WAAAA,CAAW,KAAK,CAAC,CAAA;AAAA,sCAAA,EACWA,YAAW,GAAG,CAAC,YAAYA,WAAAA,CAAW,KAAA,IAAS,EAAE,CAAC,CAAA;AAAA,UAAA,CAAA;AAE1F;AAEA,SAAS,WAAA,CACP,KAAA,EACA,GAAA,EACA,KAAA,EACA,OAAO,CAAA,EACC;AACR,EAAA,OAAO,CAAA;AAAA,UAAA,EACGA,WAAAA,CAAW,KAAK,CAAC,CAAA;AAAA,+BAAA,EACI,IAAI,CAAA,iBAAA,EAAoBA,WAAAA,CAAW,GAAG,CAAC,CAAA,SAAA,EAAY,SAAS,CAAC,CAAA;AAAA,UAAA,CAAA;AAE9F;AAEA,SAAS,UAAA,CACP,KAAA,EACA,GAAA,EACA,KAAA,EACQ;AACR,EAAA,MAAM,IAAI,KAAA,IAAS,SAAA;AACnB,EAAA,OAAO,CAAA;AAAA,UAAA,EACGA,WAAAA,CAAW,KAAK,CAAC,CAAA;AAAA,uCAAA,EACYA,WAAAA,CAAW,GAAG,CAAC,CAAA,SAAA,EAAYA,WAAAA,CAAW,EAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA;AAAA,sCAAA,EACrDA,YAAW,GAAG,CAAC,CAAA,SAAA,EAAYA,WAAAA,CAAW,CAAC,CAAC,CAAA;AAAA,UAAA,CAAA;AAEhF;AAEA,SAAS,aAAA,CAAc,KAAA,EAAe,GAAA,EAAa,KAAA,EAAwB;AACzE,EAAA,OAAO,CAAA;AAAA,0CAAA,EACmCA,YAAW,GAAG,CAAC,CAAA,EAAA,EAAK,KAAA,GAAQ,YAAY,EAAE,CAAA;AAAA,UAAA,EAC1EA,WAAAA,CAAW,KAAK,CAAC,CAAA;AAAA,UAAA,CAAA;AAE7B;AAEA,SAAS,WAAA,CACP,KAAA,EACA,GAAA,EACA,KAAA,EACA,OAAA,EACQ;AACR,EAAA,OAAO,CAAA;AAAA,UAAA,EACGA,WAAAA,CAAW,KAAK,CAAC,CAAA;AAAA,2BAAA,EACAA,WAAAA,CAAW,GAAG,CAAC,CAAA;AAAA,MAAA,EACpC,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,eAAA,EAAkBA,WAAAA,CAAW,CAAA,CAAE,KAAK,CAAC,CAAA,EAAA,EAAK,CAAA,CAAE,KAAA,KAAU,KAAA,GAAQ,aAAa,EAAE,CAAA,CAAA,EAAIA,WAAAA,CAAW,CAAA,CAAE,KAAA,IAAS,CAAA,CAAE,KAAK,CAAC,CAAA,SAAA,CAAW,CAAA,CAAE,IAAA,CAAK,EAAE,CAAC;AAAA;AAAA,UAAA,CAAA;AAG/J;AAEA,SAAS,WAAA,GAAoB;AAC3B,EAAA,IAAI,CAAC,OAAA,EAAS;AACd,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,MAAM,MAAM,YAAA,EAAa;AACzB,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,OAAA,CAAQ,SAAA,GACN,kIAAA;AACF,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,WAAW,CAAA,6CAAA,EAAyC,cAAA,EAAgB,CAAA,MAAA,EAAS,IAAI,QAAQ,CAAA,UAAA,CAAA;AAE/F,EAAA,IAAI,GAAA,CAAI,SAAS,MAAA,EAAQ;AACvB,IAAA,MAAM,UAAA,GAAa,CAAA,iIAAA,EAAiGA,WAAAA,CAAW,GAAA,CAAI,EAAE,CAAC,CAAA,OAAA,CAAA;AACtI,IAAA,MAAM,QAAA,GAAW;AAAA,MACf,SAAA,CAAU,OAAA,EAAS,YAAA,EAAc,GAAA,CAAI,KAAK,CAAA;AAAA,MAC1C,SAAA,CAAU,aAAA,EAAe,kBAAA,EAAoB,GAAA,CAAI,WAAW,CAAA;AAAA,MAC5D,WAAA,CAAY,eAAA,EAAiB,eAAA,EAAiB,GAAA,CAAI,UAAU,GAAG,CAAA;AAAA,MAC/D,WAAA,CAAY,cAAA,EAAgB,cAAA,EAAgB,GAAA,CAAI,OAAO,KAAK,CAAA;AAAA,MAC5D,WAAA,CAAY,eAAA,EAAiB,eAAA,EAAiB,GAAA,CAAI,OAAO,MAAM,CAAA;AAAA,MAC/D,UAAA;AAAA,QACE,mBAAA;AAAA,QACA,mBAAA;AAAA,QACA,IAAI,MAAA,CAAO;AAAA;AACb,KACF,CAAE,KAAK,EAAE,CAAA;AACT,IAAA,MAAM,cAAA,GAAiB,CAAA,2DAAA,CAAA;AACvB,IAAA,MAAM,YAAA,GAAe;AAAA,MACnB,aAAA,CAAc,MAAA,EAAQ,eAAA,EAAiB,GAAA,CAAI,SAAS,IAAI,CAAA;AAAA,MACxD,aAAA,CAAc,UAAA,EAAY,mBAAA,EAAqB,GAAA,CAAI,SAAS,QAAQ,CAAA;AAAA,MACpE,aAAA;AAAA,QACE,qCAAA;AAAA,QACA,sBAAA;AAAA,QACA,GAAA,CAAI,SAAS,WAAA,IAAe;AAAA,OAC9B;AAAA,MACA,aAAA;AAAA,QACE,0CAAA;AAAA,QACA,0BAAA;AAAA,QACA,GAAA,CAAI,SAAS,eAAA,IAAmB;AAAA;AAClC,KACF,CAAE,KAAK,EAAE,CAAA;AACT,IAAA,OAAA,CAAQ,SAAA,GAAY;AAAA,MAAA,EAChB,QAAQ;AAAA,MAAA,EACR,OAAA,CAAQ,MAAA,EAAQ,UAAA,EAAY,QAAQ,CAAC;AAAA,MAAA,EACrC,OAAA,CAAQ,UAAA,EAAY,cAAA,EAAgB,YAAY,CAAC;AAAA,uHAAA,EACsD,GAAA,CAAI,SAAS,MAAM,CAAA;AAAA;AAAA,uHAAA,EAEnB,GAAA,CAAI,QAAQ,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAU7H,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,GAAA,CAAI,SAAS,UAAA,EAAY;AAC3B,IAAA,MAAM,WAAW,CAAC,IAAA,EAAc,KAAA,EAAe,KAAA,KAC7C,yEAAyE,IAAI,CAAA,SAAA,EAAYA,WAAAA,CAAW,KAAK,CAAC,CAAA,cAAA,EAAiBA,WAAAA,CAAW,KAAK,CAAC,KAAK,KAAK,CAAA,SAAA,CAAA;AACxJ,IAAA,MAAM,kBAAA,GAAqB,GAAA,CAAI,UAAA,CAAW,MAAA,GAAS,IAAI,UAAA,GAAa,EAAA;AACpE,IAAA,OAAA,CAAQ,SAAA,GAAY;AAAA,MAAA,EAChB,QAAQ;AAAA,sJAAA,EACoH,GAAA,CAAI,WAAW,MAAM,CAAA;AAAA,iEAAA,EACtF,GAAA,CAAI,WAAW,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAAA,EAK5E,QAAA,CAAS,MAAA,EAAQ,QAAA,EAAK,2BAAO,CAAC;AAAA,UAAA,EAC9B,QAAA,CAAS,UAAA,EAAY,QAAA,EAAK,2BAAO,CAAC;AAAA,UAAA,EAClC,QAAA,CAAS,OAAA,EAAS,QAAA,EAAK,iCAAQ,CAAC;AAAA;AAAA;AAAA,UAAA,EAGhC,QAAA,CAAS,KAAA,EAAO,QAAA,EAAK,2BAAO,CAAC;AAAA,UAAA,EAC7B,QAAA,CAAS,UAAA,EAAY,QAAA,EAAK,2BAAO,CAAC;AAAA,UAAA,EAClC,QAAA,CAAS,QAAA,EAAU,QAAA,EAAK,iCAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,gJAAA,EAIuE,kBAAkB,CAAA;AAAA,8IAAA,EACpB,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA,QAAA,EAI1H,GAAA,CAAI,UAAA,CAAW,GAAA,CAAI,CAAC,EAAA,KAAO,CAAA,IAAA,EAAOA,WAAAA,CAAW,EAAE,CAAC,CAAA,KAAA,CAAO,CAAA,CAAE,IAAA,CAAK,EAAE,CAAC;AAAA;AAAA,IAAA,CAAA;AAGvE,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,GAAA,CAAI,SAAS,SAAA,EAAW;AAC1B,IAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,GAAA,CAAI,SAAS,CAAA;AAC1D,IAAA,IAAI,CAAC,EAAA,EAAI;AACP,MAAA,YAAA,CAAa,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA;AAC7B,MAAA;AAAA,IACF;AACA,IAAA,iBAAA,CAAkB,KAAK,EAAE,CAAA;AACzB,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,GAAA,CAAI,SAAS,SAAA,EAAW;AAC1B,IAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,GAAA,CAAI,SAAS,CAAA;AAC1D,IAAA,IAAI,CAAC,EAAA,EAAI;AACP,MAAA,YAAA,CAAa,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA;AAC7B,MAAA;AAAA,IACF;AACA,IAAA,OAAA,CAAQ,SAAA,GAAY;AAAA,MAAA,EAChB,QAAQ;AAAA,+EAAA,EACiEA,WAAAA,CAAW,EAAA,CAAG,EAAE,CAAC,CAAA;AAAA,MAAA,EAC1F,YAAY,WAAA,EAAa,cAAA,EAAgB,EAAA,CAAG,IAAA,EAAM,EAAE,CAAC;AAAA,MAAA,EACrD,SAAA,CAAU,OAAA,EAAS,eAAA,EAAiB,EAAA,CAAG,KAAK,CAAC;AAAA,MAAA,EAC7C,SAAA,CAAU,UAAA,EAAY,kBAAA,EAAoB,EAAA,CAAG,QAAQ,CAAC;AAAA;AAAA,IAAA,CAAA;AAG1D,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,GAAA,CAAI,SAAS,QAAA,EAAU;AACzB,IAAA,MAAM,GAAA,GAAM,IAAI,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,GAAA,CAAI,QAAQ,CAAA;AACzD,IAAA,IAAI,CAAC,GAAA,EAAK;AACR,MAAA,YAAA,CAAa,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA;AAC7B,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAA,GAAW,IAAI,QAAA,CAClB,GAAA;AAAA,MACC,CAAC,CAAA,KACC,CAAA,eAAA,EAAkBA,YAAW,CAAA,CAAE,EAAE,CAAC,CAAA,EAAA,EAAK,CAAA,CAAE,EAAA,KAAO,GAAA,CAAI,YAAY,UAAA,GAAa,EAAE,IAAIA,WAAAA,CAAW,CAAA,CAAE,EAAE,CAAC,CAAA,SAAA;AAAA,KACvG,CACC,KAAK,EAAE,CAAA;AACV,IAAA,MAAM,QAAA,GAAY,CAAC,WAAA,EAAa,OAAA,EAAS,MAAM,CAAA,CAC5C,GAAA;AAAA,MACC,CAAC,CAAA,KACC,CAAA,eAAA,EAAkB,CAAC,CAAA,EAAA,EAAK,CAAA,KAAM,GAAA,CAAI,IAAA,GAAO,UAAA,GAAa,EAAE,CAAA,CAAA,EAAI,CAAC,CAAA,SAAA;AAAA,KACjE,CACC,KAAK,EAAE,CAAA;AACV,IAAA,MAAM,WACJ,GAAA,CAAI,IAAA,KAAS,WAAA,GACT,UAAA,CAAW,SAAS,cAAA,EAAgB,GAAA,CAAI,KAAK,CAAA,GAC7C,IAAI,IAAA,KAAS,OAAA,GACX,YAAY,OAAA,EAAS,cAAA,EAAgB,IAAI,KAAA,EAAO,IAAI,CAAA,GACpD,UAAA,CAAW,SAAS,cAAA,EAAgB,GAAA,CAAI,KAAK,CAAA,GAC7C,YAAY,WAAA,EAAa,kBAAA,EAAoB,GAAA,CAAI,SAAA,EAAW,CAAC,CAAA,GAC7D,WAAA,CAAY,UAAU,eAAA,EAAiB,GAAA,CAAI,QAAQ,GAAG,CAAA;AAC9D,IAAA,OAAA,CAAQ,SAAA,GAAY;AAAA,MAAA,EAChB,QAAQ;AAAA,+EAAA,EACiEA,WAAAA,CAAW,GAAA,CAAI,EAAE,CAAC,CAAA;AAAA,uFAAA,EACV,QAAQ,CAAA;AAAA,iGAAA,EACE,QAAQ,CAAA;AAAA,MAAA,EACnG,YAAY,WAAA,EAAa,aAAA,EAAe,GAAA,CAAI,IAAA,EAAM,EAAE,CAAC;AAAA,MAAA,EACrD,YAAY,eAAA,EAAiB,iBAAA,EAAmB,GAAA,CAAI,QAAA,EAAU,EAAE,CAAC;AAAA,MAAA,EACjE,QAAQ;AAAA;AAAA,IAAA,CAAA;AAGZ,IAAA;AAAA,EACF;AACF;AAEA,SAAS,iBAAA,CAAkB,KAAwB,EAAA,EAA4B;AAC7E,EAAA,IAAI,CAAC,OAAA,EAAS;AACd,EAAA,MAAM,QAAA,GAAW,CAAA,6CAAA,EAAyC,cAAA,EAAgB,CAAA,UAAA,CAAA;AAE1E,EAAA,IAAI,EAAA,CAAG,SAAS,OAAA,EAAS;AACvB,IAAA,OAAA,CAAQ,SAAA,GAAY;AAAA,MAAA,EAChB,QAAQ;AAAA,+EAAA,EACiEA,WAAAA,CAAW,EAAA,CAAG,IAAA,IAAQ,EAAA,CAAG,EAAE,CAAC,CAAA,yDAAA,EAAyD,UAAA,CAAW,EAAA,CAAG,EAAE,CAAA,CAAE,MAAM,CAAA;AAAA,MAAA,EACtL,UAAU,qBAAA,EAAa,SAAA,EAAW,EAAA,CAAG,IAAA,IAAQ,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uHAAA,EAOuD,UAAA,CAAW,EAAA,CAAG,EAAE,CAAA,CAAE,MAAM,CAAA;AAAA;AAAA,QAAA,EAE7H,UAAA,CAAW,EAAA,CAAG,EAAE,CAAA,CACf,GAAA;AAAA,MACC,CAAC,QACC,CAAA,mCAAA,EAAsCA,WAAAA,CAAW,GAAG,CAAC,CAAA,wBAAA,EAA2BA,WAAAA,CAAW,GAAG,CAAC,CAAA,SAAA;AAAA,KACnG,CACC,IAAA,CAAK,EAAE,CAAC;AAAA;AAAA,IAAA,CAAA;AAGf,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,UAAA,GAAa,iBAAiB,EAAE,CAAA;AACtC,EAAA,MAAM,WAAA,GAAc,iBAAA,CAAkB,GAAA,EAAK,EAAE,CAAA;AAC7C,EAAA,MAAM,MAAA,GAAS,aAAa,EAAE,CAAA;AAE9B,EAAA,MAAM,UAAA,GAAa,CAAA,wCAAA,EAA2CA,WAAAA,CAAW,EAAA,CAAG,EAAE,CAAC,CAAA,8CAAA,EAAiDA,WAAAA,CAAW,EAAA,CAAG,IAAI,CAAC,CAAA,OAAA,CAAA;AACnJ,EAAA,MAAM,QAAA,GAAW,CAAA,sKAAA,CAAA;AACjB,EAAA,MAAM,YAAA,GAAe,CAAA,+EAAA,EAAoD,EAAA,CAAG,MAAA,CAAO,MAAM,CAAA,QAAA,CAAA;AAEzF,EAAA,OAAA,CAAQ,SAAA,GAAY;AAAA,IAAA,EAChB,QAAQ;AAAA,IAAA,EACR,OAAA,CAAQ,SAAA,EAAW,UAAA,EAAY,UAAU,CAAC;AAAA,IAAA,EAC1C,OAAA,CAAQ,gBAAA,EAAkB,QAAA,EAAU,WAAW,CAAC;AAAA,IAAA,EAChD,OAAA,CAAQ,WAAA,EAAa,YAAA,EAAc,MAAM,CAAC;AAAA;AAAA,gEAAA,EAEtB,gBAAgB,CAAA;AAAA;AAAA;AAAA,EAAA,CAAA;AAI1C;AAEA,SAAS,iBAAiB,EAAA,EAA8B;AACtD,EAAA,MAAM,eAKA,EAAC;AACP,EAAA,MAAM,cAA+D,EAAC;AACtE,EAAA,MAAM,aAA8D,EAAC;AACrE,EAAA,MAAM,CAAA,GAAI,EAAA;AAEV,EAAA,UAAA,CAAW,IAAA,CAAK;AAAA,IACd,KAAA,EAAO,qBAAA;AAAA,IACP,GAAA,EAAK,MAAA;AAAA,IACL,KAAA,EAAQ,EAAE,IAAA,IAA+B;AAAA,GAC1C,CAAA;AAED,EAAA,IAAI,EAAA,CAAG,SAAS,MAAA,IAAU,EAAA,CAAG,SAAS,OAAA,IAAW,EAAA,CAAG,SAAS,MAAA,EAAQ;AACnE,IAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,GAAA,EAAK,KAAK,GAAA,EAAK,KAAA,EAAO,CAAA,CAAE,CAAA,EAAa,CAAA;AAChE,IAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,GAAA,EAAK,KAAK,GAAA,EAAK,KAAA,EAAO,CAAA,CAAE,CAAA,EAAa,CAAA;AAAA,EAClE;AACA,EAAA,IAAI,EAAA,CAAG,IAAA,KAAS,MAAA,IAAU,EAAA,CAAG,SAAS,OAAA,EAAS;AAC7C,IAAA,YAAA,CAAa,IAAA,CAAK;AAAA,MAChB,KAAA,EAAO,OAAA;AAAA,MACP,GAAA,EAAK,OAAA;AAAA,MACL,OAAO,CAAA,CAAE;AAAA,KACV,CAAA;AACD,IAAA,YAAA,CAAa,IAAA,CAAK;AAAA,MAChB,KAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAK,QAAA;AAAA,MACL,OAAO,CAAA,CAAE;AAAA,KACV,CAAA;AAAA,EACH;AACA,EAAA,IAAI,EAAA,CAAG,SAAS,QAAA,EAAU;AACxB,IAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,IAAA,EAAM,KAAK,IAAA,EAAM,KAAA,EAAO,CAAA,CAAE,EAAA,EAAc,CAAA;AACnE,IAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,IAAA,EAAM,KAAK,IAAA,EAAM,KAAA,EAAO,CAAA,CAAE,EAAA,EAAc,CAAA;AACnE,IAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,GAAA,EAAK,KAAK,GAAA,EAAK,KAAA,EAAO,CAAA,CAAE,CAAA,EAAa,CAAA;AAAA,EAClE;AACA,EAAA,IAAI,EAAA,CAAG,IAAA,KAAS,MAAA,IAAU,EAAA,CAAG,SAAS,OAAA,EAAS;AAC7C,IAAA,IAAI,OAAO,CAAA,CAAE,EAAA,KAAO,QAAA,EAAU;AAC5B,MAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,IAAA,EAAM,KAAK,IAAA,EAAM,KAAA,EAAO,CAAA,CAAE,EAAA,EAAc,CAAA;AACnE,MAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,IAAA,EAAM,KAAK,IAAA,EAAM,KAAA,EAAO,CAAA,CAAE,EAAA,EAAc,CAAA;AACnE,MAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,IAAA,EAAM,KAAK,IAAA,EAAM,KAAA,EAAO,CAAA,CAAE,EAAA,EAAc,CAAA;AACnE,MAAA,YAAA,CAAa,IAAA,CAAK,EAAE,KAAA,EAAO,IAAA,EAAM,KAAK,IAAA,EAAM,KAAA,EAAO,CAAA,CAAE,EAAA,EAAc,CAAA;AAAA,IACrE;AAAA,EACF;AACA,EAAA,IAAI,EAAA,CAAG,SAAS,MAAA,EAAQ;AACtB,IAAA,UAAA,CAAW,IAAA,CAAK;AAAA,MACd,KAAA,EAAO,SAAA;AAAA,MACP,GAAA,EAAK,SAAA;AAAA,MACL,OAAO,CAAA,CAAE;AAAA,KACV,CAAA;AACD,IAAA,YAAA,CAAa,IAAA,CAAK;AAAA,MAChB,KAAA,EAAO,UAAA;AAAA,MACP,GAAA,EAAK,UAAA;AAAA,MACL,OAAO,CAAA,CAAE;AAAA,KACV,CAAA;AAAA,EACH;AACA,EAAA,IACE,EAAA,CAAG,IAAA,KAAS,MAAA,IACZ,EAAA,CAAG,IAAA,KAAS,QAAA,IACZ,EAAA,CAAG,IAAA,KAAS,SAAA,IACZ,EAAA,CAAG,IAAA,KAAS,MAAA,EACZ;AACA,IAAA,WAAA,CAAY,IAAA,CAAK,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAK,MAAA,EAAQ,KAAA,EAAO,CAAA,CAAE,IAAA,EAAgB,CAAA;AACxE,IAAA,WAAA,CAAY,IAAA,CAAK;AAAA,MACf,KAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAK,QAAA;AAAA,MACL,OAAO,CAAA,CAAE;AAAA,KACV,CAAA;AACD,IAAA,YAAA,CAAa,IAAA,CAAK;AAAA,MAChB,KAAA,EAAO,aAAA;AAAA,MACP,GAAA,EAAK,aAAA;AAAA,MACL,OAAO,CAAA,CAAE,WAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AACA,EAAA,IAAI,EAAA,CAAG,IAAA,KAAS,MAAA,IAAU,EAAA,CAAG,SAAS,OAAA,EAAS;AAC7C,IAAA,WAAA,CAAY,IAAA,CAAK;AAAA,MACf,KAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAK,QAAA;AAAA,MACL,OAAO,CAAA,CAAE;AAAA,KACV,CAAA;AACD,IAAA,YAAA,CAAa,IAAA,CAAK;AAAA,MAChB,KAAA,EAAO,aAAA;AAAA,MACP,GAAA,EAAK,aAAA;AAAA,MACL,OAAO,CAAA,CAAE,WAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AACA,EAAA,IAAI,EAAA,CAAG,IAAA,KAAS,MAAA,IAAU,EAAA,CAAG,SAAS,QAAA,EAAU;AAC9C,IAAA,IAAK,CAAA,CAAE,UAAiC,MAAA,EAAW;AACjD,MAAA,UAAA,CAAW,IAAA,CAAK;AAAA,QACd,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,OAAA;AAAA,QACL,KAAA,EAAQ,EAAE,KAAA,IAAoB;AAAA,OAC/B,CAAA;AACD,MAAA,WAAA,CAAY,IAAA,CAAK;AAAA,QACf,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,YAAA;AAAA,QACL,KAAA,EAAQ,EAAE,UAAA,IAAyB;AAAA,OACpC,CAAA;AAAA,IACH;AAAA,EACF;AACA,EAAA,IAAI,EAAA,CAAG,SAAS,MAAA,EAAQ;AACtB,IAAA,WAAA,CAAY,IAAA,CAAK;AAAA,MACf,KAAA,EAAO,OAAA;AAAA,MACP,GAAA,EAAK,OAAA;AAAA,MACL,OAAO,CAAA,CAAE;AAAA,KACV,CAAA;AAAA,EACH;AACA,EAAA,YAAA,CAAa,IAAA,CAAK;AAAA,IAChB,KAAA,EAAO,UAAA;AAAA,IACP,GAAA,EAAK,UAAA;AAAA,IACL,OAAO,CAAA,CAAE,QAAA;AAAA,IACT,IAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,GAAG,UAAA,CAAW,GAAA,CAAI,CAAC,MAAM,SAAA,CAAU,CAAA,CAAE,KAAA,EAAO,CAAA,GAAA,EAAM,CAAA,CAAE,GAAG,CAAA,CAAA,EAAI,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,IACnE,GAAG,YAAA,CAAa,GAAA;AAAA,MAAI,CAAC,CAAA,KACnB,WAAA,CAAY,CAAA,CAAE,KAAA,EAAO,CAAA,GAAA,EAAM,CAAA,CAAE,GAAG,CAAA,CAAA,EAAI,CAAA,CAAE,KAAA,EAAO,CAAA,CAAE,IAAI;AAAA,KACrD;AAAA,IACA,GAAG,WAAA,CAAY,GAAA,CAAI,CAAC,MAAM,UAAA,CAAW,CAAA,CAAE,KAAA,EAAO,CAAA,GAAA,EAAM,CAAA,CAAE,GAAG,CAAA,CAAA,EAAI,CAAA,CAAE,KAAK,CAAC;AAAA,GACvE;AACA,EAAA,OAAO,IAAA,CAAK,KAAK,EAAE,CAAA;AACrB;AAEA,SAAS,iBAAA,CACP,KACA,EAAA,EACQ;AACR,EAAA,IAAI,EAAA,CAAG,WAAA,CAAY,MAAA,KAAW,CAAA,EAAG;AAC/B,IAAA,OAAO,4FAAA;AAAA,EACT;AACA,EAAA,MAAM,KAAA,GAA6C;AAAA,IACjD,EAAE,OAAO,SAAA,EAAU;AAAA,IACnB,EAAE,OAAO,MAAA,EAAO;AAAA,IAChB,EAAE,OAAO,YAAA,EAAa;AAAA,IACtB,EAAE,OAAO,aAAA,EAAc;AAAA,IACvB,EAAE,OAAO,UAAA,EAAW;AAAA,IACpB,EAAE,OAAO,YAAA,EAAa;AAAA,IACtB,EAAE,OAAO,MAAA,EAAO;AAAA,IAChB,EAAE,OAAO,KAAA;AAAM,GACjB;AACA,EAAA,OAAO,GAAG,WAAA,CACP,GAAA;AAAA,IACC,CAAC,IAAI,GAAA,KAAQ;AAAA;AAAA;AAAA,qDAAA,EAGoC,MAAM,CAAC,CAAA;AAAA,8GAAA,EACkD,GAAG,CAAA;AAAA;AAAA,QAAA,EAEzG,WAAA,CAAY,cAAc,CAAA,GAAA,EAAM,GAAG,UAAU,EAAA,CAAG,KAAA,EAAO,EAAE,CAAC;AAAA,QAAA,EAC1D,WAAA,CAAY,YAAY,CAAA,GAAA,EAAM,GAAG,QAAQ,EAAA,CAAG,GAAA,EAAK,EAAE,CAAC;AAAA,QAAA,EACpD,WAAA,CAAY,SAAS,CAAA,GAAA,EAAM,GAAG,cAAc,EAAA,CAAG,SAAA,IAAa,SAAA,EAAW,KAAK,CAAC;AAAA,QAAA,EAC7E,WAAA,CAAY,aAAa,CAAA,GAAA,EAAM,GAAG,kBAAkB,EAAA,CAAG,aAAA,EAAe,EAAE,CAAC;AAAA,QAAA,EACzE,WAAA,CAAY,QAAQ,CAAA,GAAA,EAAM,GAAG,aAAa,EAAA,CAAG,QAAA,IAAY,SAAA,EAAW,KAAK,CAAC;AAAA,QAAA,EAC1E,WAAA,CAAY,YAAY,CAAA,GAAA,EAAM,GAAG,iBAAiB,EAAA,CAAG,YAAA,EAAc,EAAE,CAAC;AAAA;AAAA,IAAA;AAAA,GAG5E,CACC,KAAK,EAAE,CAAA;AACZ;AAEA,SAAS,aAAa,EAAA,EAA8B;AAClD,EAAA,IAAI,EAAA,CAAG,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG;AAC1B,IAAA,OAAO,iNAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAA,CAAG,MAAA,CACP,GAAA,CAAI,CAAC,CAAA,KAAM;AACV,IAAA,MAAM,IAAA,GAAO,EAAE,SAAA,CACZ,GAAA;AAAA,MACC,CAAC,IAAI,GAAA,KAAQ,CAAA;AAAA,yEAAA,EACoD,GAAG,IAAI,CAAA,SAAA,EAAY,GAAG,IAAI,CAAA,0BAAA,EAAc,GAAG,IAAI,CAAA;AAAA,gBAAA,EACxGA,WAAAA,CAAW,MAAA,CAAO,EAAA,CAAG,KAAK,CAAC,CAAC,CAAA;AAAA,2GAAA,EAC+DA,WAAAA,CAAW,EAAE,QAAQ,CAAC,0BAA0B,EAAA,CAAG,IAAI,kBAAkB,GAAG,CAAA;AAAA,aAAA;AAAA,KAEjL,CACC,KAAK,EAAE,CAAA;AACV,IAAA,OAAO;AAAA;AAAA;AAAA,gDAAA,EAGqCA,WAAAA,CAAW,CAAA,CAAE,QAAQ,CAAC,CAAA;AAAA,iDAAA,EACrB,CAAA,CAAE,UAAU,MAAM,CAAA;AAAA,mFAAA,EACgBA,WAAAA,CAAW,CAAA,CAAE,QAAQ,CAAC,CAAA;AAAA,2GAAA,EACEA,WAAAA,CAAW,CAAA,CAAE,QAAQ,CAAC,CAAA;AAAA;AAAA,wCAAA,EAEzF,IAAI,CAAA;AAAA;AAAA,MAAA,CAAA;AAAA,EAG1C,CAAC,CAAA,CACA,IAAA,CAAK,EAAE,CAAA;AACZ;AAEA,SAAS,QAAQ,CAAA,EAAgB;AAC/B,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,MAAM,GAAA,GAAM,OAAO,OAAA,CAAQ,OAAA;AAC3B,EAAA,IAAI,CAAC,GAAA,EAAK;AAEV,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAW,CAAA,CAAiB,WAAA,EAAa;AAC7D,EAAA,IAAI,MAAA,CAAO,IAAA,KAAS,MAAA,IAAU,mBAAA,EAAqB;AACnD,EAAA,IAAI,QAAmC,MAAA,CAAO,KAAA;AAC9C,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,EAAU,KAAA,GAAQ,MAAA,CAAO,OAAO,KAAK,CAAA;AAAA,OAAA,IAChD,MAAA,CAAO,IAAA,KAAS,UAAA,EAAY,KAAA,GAAQ,MAAA,CAAO,OAAA;AACpD,EAAA,KAAA,CAAM,KAAK,KAAK,CAAA;AAClB;AAEA,SAAS,SAAS,CAAA,EAAgB;AAChC,EAAA,OAAA,CAAQ,CAAC,CAAA;AACX;AAEA,SAAS,KAAA,CAAM,KAAa,KAAA,EAAwC;AAClE,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,MAAM,MAAM,YAAA,EAAa;AAEzB,EAAA,IAAI,GAAA,KAAQ,cAAc,UAAA,CAAW,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAAA,OAAA,IACpD,GAAA,KAAQ,kBAAA;AACf,IAAA,UAAA,CAAW,EAAE,WAAA,EAAa,MAAA,CAAO,KAAK,GAAG,CAAA;AAAA,OAAA,IAClC,GAAA,KAAQ,eAAA,EAAiB,cAAA,CAAe,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,OAAA,IACrD,GAAA,KAAQ,gBAAgB,YAAA,CAAa,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAAA,OAAA,IAC7D,GAAA,KAAQ,iBAAiB,YAAA,CAAa,EAAE,QAAQ,MAAA,CAAO,KAAK,GAAG,CAAA;AAAA,OAAA,IAC/D,GAAA,KAAQ,mBAAA;AACf,IAAA,YAAA,CAAa,EAAE,UAAA,EAAY,MAAA,CAAO,KAAK,GAAG,CAAA;AAAA,OAAA,IACnC,GAAA,KAAQ,iBAAiB,cAAA,CAAe,EAAE,MAAM,OAAA,CAAQ,KAAK,GAAG,CAAA;AAAA,OAAA,IAChE,GAAA,KAAQ,mBAAA;AACf,IAAA,cAAA,CAAe,EAAE,QAAA,EAAU,OAAA,CAAQ,KAAK,GAAG,CAAA;AAAA,OAAA,IACpC,GAAA,KAAQ,sBAAA;AACf,IAAA,cAAA,CAAe,EAAE,WAAA,EAAa,OAAA,CAAQ,KAAK,GAAG,CAAA;AAAA,OAAA,IACvC,GAAA,KAAQ,0BAAA;AACf,IAAA,cAAA,CAAe,EAAE,eAAA,EAAiB,OAAA,CAAQ,KAAK,GAAG,CAAA;AAAA,OAAA,IAC3C,IAAI,UAAA,CAAW,KAAK,CAAA,IAAK,GAAA,CAAI,SAAS,SAAA,EAAW;AACxD,IAAA,MAAM,IAAA,GAAO,GAAA,CAAI,KAAA,CAAM,CAAC,CAAA;AACxB,IAAA,MAAM,OAAO,cAAA,EAAe;AAC5B,IAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,GAAA,CAAI,SAAS,CAAA;AAC1D,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,MAAM,QAAA,GAAW,GAAG,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,IAAI,CAAA;AAC1D,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,gBAAA,CAAiB,GAAA,CAAI,SAAA,EAAW,IAAA,EAAM,IAAA,EAAM,KAAK,CAAA;AAAA,IACnD,CAAA,MAAO;AACL,MAAA,iBAAA,CAAkB,IAAI,SAAA,EAAW,EAAE,CAAC,IAAI,GAAG,OAAO,CAAA;AAAA,IACpD;AAAA,EACF,WAAW,GAAA,CAAI,UAAA,CAAW,KAAK,CAAA,IAAK,GAAA,CAAI,SAAS,SAAA,EAAW;AAC1D,IAAA,MAAM,GAAG,MAAA,EAAQ,IAAI,CAAA,GAAI,GAAA,CAAI,MAAM,GAAG,CAAA;AACtC,IAAA,MAAM,GAAA,GAAM,OAAO,MAAM,CAAA;AACzB,IAAA,MAAM,QAA6B,EAAC;AACpC,IAAA,IAAI,IAAA,KAAS,OAAA,EAAS,KAAA,CAAM,KAAA,GAAQ,OAAO,KAAK,CAAA;AAAA,SAAA,IACvC,IAAA,KAAS,KAAA,EAAO,KAAA,CAAM,GAAA,GAAM,OAAO,KAAK,CAAA;AAAA,SAAA,IACxC,IAAA,KAAS,WAAA,EAAa,KAAA,CAAM,SAAA,GAAY,KAAA;AAAA,SAAA,IACxC,IAAA,KAAS,eAAA,EAAiB,KAAA,CAAM,aAAA,GAAgB,OAAO,KAAK,CAAA;AAAA,SAAA,IAC5D,IAAA,KAAS,UAAA,EAAY,KAAA,CAAM,QAAA,GAAW,KAAA;AAAA,SAAA,IACtC,IAAA,KAAS,cAAA,EAAgB,KAAA,CAAM,YAAA,GAAe,OAAO,KAAK,CAAA;AACnE,IAAA,gBAAA,CAAiB,GAAA,CAAI,SAAA,EAAW,GAAA,EAAK,KAAK,CAAA;AAAA,EAC5C,CAAA,MAAA,IAAW,GAAA,KAAQ,cAAA,IAAkB,GAAA,CAAI,SAAS,SAAA,EAAW;AAC3D,IAAA,aAAA,CAAc,IAAI,SAAA,EAAW,EAAE,MAAM,MAAA,CAAO,KAAK,GAAG,CAAA;AAAA,EACtD,CAAA,MAAA,IAAW,GAAA,KAAQ,eAAA,IAAmB,GAAA,CAAI,SAAS,SAAA,EAAW;AAC5D,IAAA,aAAA,CAAc,IAAI,SAAA,EAAW,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAAA,EACvD,CAAA,MAAA,IAAW,GAAA,KAAQ,kBAAA,IAAsB,GAAA,CAAI,SAAS,SAAA,EAAW;AAC/D,IAAA,aAAA,CAAc,IAAI,SAAA,EAAW,EAAE,UAAU,MAAA,CAAO,KAAK,GAAG,CAAA;AAAA,EAC1D,WAAW,GAAA,CAAI,UAAA,CAAW,SAAS,CAAA,IAAK,GAAA,CAAI,SAAS,QAAA,EAAU;AAC7D,IAAA,MAAM,IAAA,GAAO,GAAA,CAAI,KAAA,CAAM,CAAC,CAAA;AACxB,IAAA,MAAM,QAAiC,EAAC;AACxC,IAAA,IACE,IAAA,KAAS,UACT,IAAA,KAAS,UAAA,IACT,SAAS,OAAA,IACT,IAAA,KAAS,WAAA,IACT,IAAA,KAAS,QAAA,EACT;AACA,MAAA,KAAA,CAAM,IAAI,CAAA,GAAI,MAAA,CAAO,KAAK,CAAA;AAAA,IAC5B,CAAA,MAAO;AACL,MAAA,KAAA,CAAM,IAAI,CAAA,GAAI,KAAA;AAAA,IAChB;AACA,IAAA,YAAA,CAAa,GAAA,CAAI,UAAU,KAAiC,CAAA;AAAA,EAC9D;AACF;AAEA,SAASD,SAAQ,CAAA,EAAgB;AAC/B,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,MAAM,MAAM,YAAA,EAAa;AAEzB,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAqB,cAAc,CAAA;AAC3D,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,aAAA,CAAc,QAAA,CAAS,QAAQ,KAAkB,CAAA;AACjD,IAAA;AAAA,EACF;AACA,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAqB,mBAAmB,CAAA;AAC/D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,kBAAA,CAAmB,OAAA,CAAQ,QAAQ,UAA4B,CAAA;AAC/D,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,OAAO,OAAA,CAAQ,gBAAgB,CAAA,IAAK,GAAA,CAAI,SAAS,SAAA,EAAW;AAC9D,IAAA,cAAA,CAAe,IAAI,SAAS,CAAA;AAC5B,IAAA;AAAA,EACF;AACA,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,OAAA,CAAqB,qBAAqB,CAAA;AACnE,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,YAAA,CAAa;AAAA,MACX,IAAA,EAAM,SAAA;AAAA,MACN,SAAA,EAAW,SAAA,CAAU,OAAA,CAAQ,WAAA,IAAe;AAAA,KAC7C,CAAA;AACD,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,oBAAoB,CAAA,EAAG;AACxC,IAAA,MAAM,KAAK,eAAA,EAAgB;AAC3B,IAAA,UAAA,CAAW;AAAA,MACT,EAAA;AAAA,MACA,MAAM,cAAA,EAAe;AAAA,MACrB,OAAO,CAAA,QAAA,EAAW,EAAA,CAAG,MAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA;AAAA,MAClC,QAAA,EAAU;AAAA,KACX,CAAA;AACD,IAAA;AAAA,EACF;AACA,EAAA,IAAI,OAAO,OAAA,CAAQ,uBAAuB,CAAA,IAAK,GAAA,CAAI,SAAS,SAAA,EAAW;AACrE,IAAA,aAAA,CAAc,IAAI,SAAS,CAAA;AAC3B,IAAA;AAAA,EACF;AACA,EAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,mBAAmB,CAAA,EAAG;AACvC,IAAA,MAAM,UAAU,QAAA,CAAS,cAAA;AAAA,MACvB;AAAA,KACF;AACA,IAAA,MAAM,IAAA,GAAQ,SAAS,KAAA,IAAS,WAAA;AAEhC,IAAA,MAAM,OAAA,GAAU,GAAA,CAAI,QAAA,CAAS,CAAC,CAAA;AAC9B,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,MAAM,KAAK,cAAA,EAAe;AAC1B,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,EAAA;AAAA,MACA,WAAW,OAAA,CAAQ,EAAA;AAAA,MACnB,MAAM,cAAA,EAAe;AAAA,MACrB,QAAA,EAAU;AAAA,KACZ;AACA,IAAA,IAAI,GAAA;AACJ,IAAA,IAAI,IAAA,KAAS,WAAA;AACX,MAAA,GAAA,GAAM,EAAE,GAAG,IAAA,EAAM,IAAA,EAAM,WAAA,EAAa,OAAO,SAAA,EAAU;AAAA,SAAA,IAC9C,IAAA,KAAS,SAAS,GAAA,GAAM,EAAE,GAAG,IAAA,EAAM,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK;AAAA;AAErE,MAAA,GAAA,GAAM;AAAA,QACJ,GAAG,IAAA;AAAA,QACH,IAAA,EAAM,MAAA;AAAA,QACN,KAAA,EAAO,SAAA;AAAA,QACP,SAAA,EAAW,CAAA;AAAA,QACX,MAAA,EAAQ,CAAA;AAAA,QACR,QAAA,EAAU;AAAA,OACZ;AACF,IAAA,SAAA,CAAU,GAAG,CAAA;AACb,IAAA;AAAA,EACF;AACA,EAAA,IAAI,OAAO,OAAA,CAAQ,sBAAsB,CAAA,IAAK,GAAA,CAAI,SAAS,QAAA,EAAU;AACnE,IAAA,YAAA,CAAa,IAAI,QAAQ,CAAA;AACzB,IAAA;AAAA,EACF;AACA,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAqB,0BAA0B,CAAA;AACvE,EAAA,IAAI,QAAA,IAAY,GAAA,CAAI,IAAA,KAAS,SAAA,EAAW;AACtC,IAAA,MAAM,GAAA,GAAM,MAAA,CAAO,QAAA,CAAS,OAAA,CAAQ,gBAAgB,CAAA;AACpD,IAAA,gBAAA,CAAiB,GAAA,CAAI,WAAW,GAAG,CAAA;AACnC,IAAA;AAAA,EACF;AACA,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAqB,qBAAqB,CAAA;AAClE,EAAA,IAAI,QAAA,IAAY,GAAA,CAAI,IAAA,KAAS,SAAA,EAAW;AACtC,IAAA,WAAA,CAAY,GAAA,CAAI,SAAA,EAAW,QAAA,CAAS,OAAA,CAAQ,eAAe,EAAE,CAAA;AAC7D,IAAA;AAAA,EACF;AACA,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAqB,uBAAuB,CAAA;AACpE,EAAA,IAAI,QAAA,IAAY,GAAA,CAAI,IAAA,KAAS,SAAA,EAAW;AACtC,IAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,CAAQ,YAAA,IAAgB,EAAA;AAC9C,IAAA,MAAM,IAAA,GAAO,MAAA,CAAO,QAAA,CAAS,OAAA,CAAQ,gBAAgB,GAAG,CAAA;AACxD,IAAA,mBAAA,CAAoB,GAAA,CAAI,SAAA,EAAW,IAAA,EAAM,IAAI,CAAA;AAC7C,IAAA;AAAA,EACF;AACA,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,OAAA,CAAqB,eAAe,CAAA;AACzD,EAAA,IAAI,KAAA,IAAS,GAAA,CAAI,IAAA,KAAS,SAAA,EAAW;AACnC,IAAA,MAAM,IAAA,GAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,IAAS,EAAA;AACpC,IAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAACE,EAAAA,KAAMA,EAAAA,CAAE,EAAA,KAAO,GAAA,CAAI,SAAS,CAAA;AAC1D,IAAA,MAAM,OAAA,GAAU,EAAA,GACX,EAAA,CAA0C,IAAI,CAAA,GAC/C,MAAA;AACJ,IAAA,IACE,OAAO,YAAY,QAAA,IACnB,OAAO,YAAY,QAAA,IACnB,OAAO,YAAY,SAAA,EACnB;AACA,MAAA,gBAAA,CAAiB,GAAA,CAAI,SAAA,EAAW,IAAA,EAAM,cAAA,IAAkB,OAAO,CAAA;AAAA,IACjE;AACA,IAAA;AAAA,EACF;AACA,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAqB,kBAAkB,CAAA;AAC/D,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,cAAA,CAAe,MAAA,CAAO,QAAA,CAAS,OAAA,CAAQ,QAAA,IAAY,GAAG,CAAC,CAAA;AACvD,IAAA;AAAA,EACF;AACA,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,OAAA,CAAQ,uBAAuB,CAAA;AACpD,EAAA,IAAI,KAAA,IAAS,GAAA,CAAI,IAAA,KAAS,SAAA,EAAW;AACnC,IAAA,aAAA,CAAc,IAAI,SAAA,EAAW;AAAA,MAC3B,OAAO,cAAA,EAAe;AAAA,MACtB,KAAK,GAAA,CAAI,QAAA;AAAA,MACT,aAAA,EAAe,GAAA;AAAA,MACf,YAAA,EAAc;AAAA,KACf,CAAA;AACD,IAAA;AAAA,EACF;AACF;;;AClxBA,IAAI,QAAA,GAA+B,IAAA;AACnC,IAAI,UAAA,GAAiC,IAAA;AACrC,IAAI,MAAA,GAAmC,IAAA;AACvC,IAAI,kBAAA,GAAqB,KAAA;AACzB,IAAI,aAAA,GAAuC,IAAA;AAE3C,IAAI,OAAA,GAAU,IAAA;AACd,IAAM,SAAA,GAAY,GAAA;AAClB,IAAM,aAAA,GAAgB,yBAAA;AAEtB,IAAI;AACF,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,YAAA,CAAa,OAAA,CAAQ,aAAa,CAAC,CAAA;AACxD,EAAA,IAAI,MAAA,CAAO,SAAS,KAAK,CAAA,IAAK,QAAQ,IAAA,IAAQ,KAAA,GAAQ,GAAG,OAAA,GAAU,KAAA;AACrE,CAAA,CAAA,MAAQ;AAER;AAsBA,IAAI,QAAA,GAA4B,IAAA;AAEzB,SAAS,YAAA,CACd,UAAA,EACA,aAAA,EACA,aAAA,EACM;AACN,EAAA,QAAA,GAAW,UAAA;AACX,EAAA,UAAA,GAAa,aAAA;AACb,EAAA,MAAA,GAAS,aAAA;AACT,EAAA,SAAA,CAAUH,OAAM,CAAA;AAChB,EAAA,UAAA,CAAW,gBAAA,CAAiB,SAAS,aAAa,CAAA;AAClD,EAAA,UAAA,CAAW,gBAAA,CAAiB,aAAaI,YAAW,CAAA;AACpD,EAAA,aAAA,CAAc,gBAAA,CAAiB,SAAS,eAAe,CAAA;AACvD,EAAA,aAAA,CAAc,gBAAA,CAAiB,aAAaA,YAAW,CAAA;AACvD,EAAA,QAAA,CAAS,gBAAA,CAAiB,aAAaC,YAAW,CAAA;AAClD,EAAA,QAAA,CAAS,gBAAA,CAAiB,WAAWC,UAAS,CAAA;AAC9C,EAAA,MAAA,EAAQ,gBAAA,CAAiB,SAAS,MAAM;AACtC,IAAA,MAAM,KAAK,eAAA,EAAgB;AAC3B,IAAA,MAAM,MAAM,MAAA,EAAO;AACnB,IAAA,MAAM,QAAA,GAAW,GAAA,GACb,GAAA,CAAI,QAAA,CAAS,OAAO,CAAC,GAAA,EAAK,CAAA,KAAO,CAAA,CAAE,OAAO,GAAA,GAAM,CAAA,CAAE,IAAA,GAAO,GAAA,EAAM,EAAE,CAAA,GACjE,EAAA;AACJ,IAAA,MAAM,OAAA,GACJ,QAAA,GAAW,CAAA,GACP,cAAA,EAAe,GACf,KAAK,GAAA,CAAI,cAAA,EAAe,EAAG,QAAA,GAAW,GAAG,CAAA;AAC/C,IAAA,UAAA,CAAW;AAAA,MACT,EAAA;AAAA,MACA,IAAA,EAAM,OAAA;AAAA,MACN,OAAO,CAAA,QAAA,EAAW,EAAA,CAAG,MAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA;AAAA,MAClC,QAAA,EAAU;AAAA,KACX,CAAA;AACD,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAW,IAAI,CAAA;AAAA,EACjD,CAAC,CAAA;AACD,EAAA,MAAM,aAAa,UAAA,CAAW,aAAA;AAC9B,EAAA,MAAM,cAAc,aAAA,CAAc,aAAA;AAClC,EAAA,IAAI,cAAc,WAAA,EAAa;AAC7B,IAAA,UAAA,CAAW,gBAAA;AAAA,MACT,QAAA;AAAA,MACA,MAAM,YAAA,CAAa,UAAA,EAAY,WAAW,CAAA;AAAA,MAC1C,EAAE,SAAS,IAAA;AAAK,KAClB;AACA,IAAA,WAAA,CAAY,gBAAA;AAAA,MACV,QAAA;AAAA,MACA,MAAM,YAAA,CAAa,WAAA,EAAa,UAAU,CAAA;AAAA,MAC1C,EAAE,SAAS,IAAA;AAAK,KAClB;AACA,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAwB;AAC3C,MAAA,IAAI,CAAC,CAAA,CAAE,OAAA,IAAW,CAAC,EAAE,OAAA,EAAS;AAC9B,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAM,OAAO,CAAA,CAAE,aAAA;AACf,MAAA,MAAM,QAAA,GAAW,KAAK,qBAAA,EAAsB;AAC5C,MAAA,MAAM,cACJ,CAAA,CAAE,OAAA,GAAU,QAAA,CAAS,IAAA,GAAO,YAAY,IAAA,CAAK,UAAA;AAC/C,MAAA,MAAM,KAAA,GAAQ,OAAA;AACd,MAAA,MAAM,MAAA,GAAS,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,OAAO,CAAA,GAAI,IAAA;AACzC,MAAA,OAAA,GAAU,IAAA,CAAK,IAAI,KAAA,EAAO,IAAA,CAAK,IAAI,GAAA,EAAK,KAAA,GAAQ,MAAM,CAAC,CAAA;AACvD,MAAA,IAAI;AACF,QAAA,YAAA,CAAa,OAAA,CAAQ,aAAA,EAAe,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,MACrD,CAAA,CAAA,MAAQ;AAAA,MAER;AACA,MAAA,MAAM,QAAQ,OAAA,GAAU,KAAA;AACxB,MAAAN,OAAAA,EAAO;AACP,MAAA,MAAM,gBACJ,WAAA,GAAc,KAAA,IAAS,CAAA,CAAE,OAAA,GAAU,SAAS,IAAA,GAAO,SAAA,CAAA;AACrD,MAAA,IAAA,CAAK,UAAA,GAAa,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,aAAa,CAAA;AAAA,IAC7C,CAAA;AACA,IAAA,UAAA,CAAW,iBAAiB,OAAA,EAAS,WAAA,EAAa,EAAE,OAAA,EAAS,OAAO,CAAA;AACpE,IAAA,WAAA,CAAY,iBAAiB,OAAA,EAAS,WAAA,EAAa,EAAE,OAAA,EAAS,OAAO,CAAA;AAAA,EACvE;AACA,EAAAA,OAAAA,EAAO;AACT;AAEA,SAAS,YAAA,CAAa,QAAqB,MAAA,EAA2B;AACpE,EAAA,IAAI,kBAAA,EAAoB;AACxB,EAAA,kBAAA,GAAqB,IAAA;AACrB,EAAA,MAAA,CAAO,aAAa,MAAA,CAAO,UAAA;AAC3B,EAAA,qBAAA,CAAsB,MAAM;AAC1B,IAAA,kBAAA,GAAqB,KAAA;AAAA,EACvB,CAAC,CAAA;AACH;AAEA,SAAS,eAAA,CAAgB,OAAA,EAAiB,OAAA,EAAiB,IAAA,EAAoB;AAC7E,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,aAAA,GAAgB,QAAA,CAAS,cAAc,KAAK,CAAA;AAC5C,IAAA,aAAA,CAAc,SAAA,GAAY,wBAAA;AAC1B,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,aAAa,CAAA;AAAA,EACzC;AACA,EAAA,aAAA,CAAc,WAAA,GAAc,IAAA;AAC5B,EAAA,aAAA,CAAc,KAAA,CAAM,IAAA,GAAO,CAAA,EAAG,OAAA,GAAU,EAAE,CAAA,EAAA,CAAA;AAC1C,EAAA,aAAA,CAAc,KAAA,CAAM,GAAA,GAAM,CAAA,EAAG,OAAA,GAAU,EAAE,CAAA,EAAA,CAAA;AACzC,EAAA,aAAA,CAAc,MAAM,OAAA,GAAU,OAAA;AAChC;AAEA,SAAS,eAAA,GAAwB;AAC/B,EAAA,IAAI,aAAA,EAAe,aAAA,CAAc,KAAA,CAAM,OAAA,GAAU,MAAA;AACnD;AAEA,SAASE,YAAW,CAAA,EAAmB;AACrC,EAAA,OAAO,CAAA,CACJ,OAAA,CAAQ,IAAA,EAAM,OAAO,EACrB,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,QAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,OAAA,CAAQ,MAAM,QAAQ,CAAA;AAC3B;AAEA,SAAS,SAAS,EAAA,EAAoB;AACpC,EAAA,OAAO,EAAA,GAAK,OAAA;AACd;AAEA,SAAS,SAAS,EAAA,EAAoB;AACpC,EAAA,OAAO,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,KAAA,CAAM,EAAA,GAAK,OAAO,CAAC,CAAA;AAC7C;AAEA,SAASF,OAAAA,GAAe;AACtB,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,UAAA,EAAY;AAC9B,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,QAAA,CAAS,SAAA,GACP,+HAAA;AACF,IAAA,UAAA,CAAW,SAAA,GAAY,EAAA;AACvB,IAAA;AAAA,EACF;AACA,EAAA,MAAM,MAAM,YAAA,EAAa;AACzB,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,MAAM,UAAU,IAAA,CAAK,GAAA,CAAI,KAAK,QAAA,CAAS,GAAA,CAAI,QAAQ,CAAC,CAAA;AACpD,EAAA,MAAM,cAAA,GAAiB,CAAC,GAAG,GAAA,CAAI,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,IAAA,GAAO,EAAE,IAAI,CAAA;AAEvE,EAAA,MAAM,aAAuB,EAAC;AAC9B,EAAA,MAAM,IAAA,GAAO,IAAI,QAAA,GAAW,GAAA,GAAQ,MAAO,GAAA,CAAI,QAAA,GAAW,MAAO,GAAA,GAAM,GAAA;AACvE,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,IAAK,GAAA,CAAI,QAAA,EAAU,KAAK,IAAA,EAAM;AAC5C,IAAA,MAAM,CAAA,GAAI,SAAS,CAAC,CAAA;AACpB,IAAA,UAAA,CAAW,IAAA;AAAA,MACT,CAAA,8CAAA,EAAiD,CAAC,CAAA,UAAA,EAAa,CAAC,CAAA,aAAA;AAAA,KAClE;AAAA,EACF;AAEA,EAAA,MAAM,cAAA,GAAiB,cAAA,CACpB,GAAA,CAAI,CAAC,CAAA,KAAM;AACV,IAAA,MAAM,CAAA,GAAI,QAAA,CAAS,CAAA,CAAE,IAAI,CAAA;AACzB,IAAA,MAAM,QAAQ,GAAA,CAAI,IAAA,KAAS,SAAA,IAAa,GAAA,CAAI,cAAc,CAAA,CAAE,EAAA;AAC5D,IAAA,OAAO,wCAAwC,KAAA,GAAQ,aAAA,GAAgB,EAAE,CAAA,cAAA,EAAiB,CAAC,wBAAwBE,WAAAA,CAAW,CAAA,CAAE,EAAE,CAAC,YAAYA,WAAAA,CAAW,CAAA,CAAE,KAAK,CAAC,CAAA,GAAA,EAAM,EAAE,IAAI,CAAA;AAAA;AAAA,6CAAA,EAErIA,WAAAA,CAAW,CAAA,CAAE,KAAA,IAAS,CAAA,CAAE,EAAE,CAAC,CAAA;AAAA,YAAA,CAAA;AAAA,EAEtE,CAAC,CAAA,CACA,IAAA,CAAK,EAAE,CAAA;AAEV,EAAA,MAAM,WAAA,GAAc,CAAA,gDAAA,EAAmD,SAAS,CAAA,SAAA,EAAY,OAAO,mDAAmD,QAAA,CAAS,WAAW,CAAC,CAAA,aAAA,EAAgB,WAAW,CAAA,gBAAA,CAAA;AAEtM,EAAA,QAAA,CAAS,SAAA,GAAY;AAAA;AAAA;AAAA;AAAA,iDAAA,EAI4B,OAAO,CAAA;AAAA,uCAAA,EACjB,UAAA,CAAW,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iDAAA,EAKT,OAAO,CAAA;AAAA;AAAA,YAAA,EAE5C,cAAc;AAAA;AAAA;AAAA;AAAA,MAAA,EAIpB,WAAW;AAAA;AAAA,8CAAA,EAEmB,GAAA,CAAI,QAAQ,CAAA,SAAA,EAAS,cAAA,CAAe,MAAM,kBAAe,GAAA,CAAI,QAAA,CAAS,MAAM,CAAA,4BAAA,EAAkB,WAAW,CAAA;AAAA,EAAA,CAAA;AAG7I,EAAA,mBAAA,CAAoB,GAAA,CAAI,QAAA,EAAU,WAAA,EAAa,OAAA,EAAS,GAAG,CAAA;AAC7D;AAEA,SAAS,YAAY,EAAA,EAA8B;AACjD,EAAA,OAAO,GAAG,oBAAA,CAAqB,EAAE,CAAC,CAAA,MAAA,EAAM,GAAG,IAAI,CAAA,CAAA;AACjD;AAEA,SAAS,mBAAA,CACP,QAAA,EACA,WAAA,EACA,OAAA,EACA,GAAA,EACM;AACN,EAAA,IAAI,CAAC,UAAA,EAAY;AACjB,EAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,IAAA,UAAA,CAAW,SAAA,GAAY,0DAAA;AACvB,IAAA;AAAA,EACF;AACA,EAAA,MAAM,IAAA,GAAO,QAAA,CACV,GAAA,CAAI,CAAC,EAAA,KAAO;AACX,IAAA,MAAM,KAAA,GACH,GAAA,CAAI,IAAA,KAAS,SAAA,IAAa,IAAI,SAAA,KAAc,EAAA,CAAG,EAAA,IAC/C,GAAA,CAAI,SAAS,UAAA,IAAc,GAAA,CAAI,UAAA,CAAW,QAAA,CAAS,GAAG,EAAE,CAAA;AAC3D,IAAA,MAAM,iBAAiB,EAAA,CAAG,WAAA,CACvB,GAAA,CAAI,CAAC,IAAI,GAAA,KAAQ;AAChB,MAAA,MAAM,IAAA,GAAO,QAAA,CAAS,EAAA,CAAG,KAAK,CAAA;AAC9B,MAAA,MAAM,KAAA,GAAQ,KAAK,GAAA,CAAI,CAAA,EAAG,SAAS,EAAA,CAAG,GAAA,GAAM,EAAA,CAAG,KAAK,CAAC,CAAA;AACrD,MAAA,OAAO,iDAAiD,IAAI,CAAA,SAAA,EAAY,KAAK,CAAA,kBAAA,EAAqBA,YAAW,EAAA,CAAG,EAAE,CAAC,CAAA,eAAA,EAAkB,GAAG,CAAA,SAAA,EAAY,EAAA,CAAG,KAAK,CAAA,CAAA,EAAI,GAAG,GAAG,CAAA;AAAA;AAAA;AAAA,6CAAA,EAGjI,EAAA,CAAG,KAAK,CAAA,MAAA,EAAI,EAAA,CAAG,GAAG,CAAA;AAAA,gBAAA,CAAA;AAAA,IAEzD,CAAC,CAAA,CACA,IAAA,CAAK,EAAE,CAAA;AACV,IAAA,MAAM,QAAA,GAAW,GAAG,MAAA,CACjB,OAAA;AAAA,MAAQ,CAAC,CAAA,KACR,CAAA,CAAE,SAAA,CAAU,IAAI,CAAC,EAAA,MAAQ,EAAE,IAAA,EAAM,CAAA,CAAE,QAAA,EAAU,IAAA,EAAM,EAAA,CAAG,MAAK,CAAE;AAAA,KAC/D,CACC,GAAA;AAAA,MACC,CAAC,EAAA,KACC,CAAA,4CAAA,EAA+C,QAAA,CAAS,EAAA,CAAG,IAAI,CAAC,CAAA,qBAAA,EAAwBA,WAAAA,CAAW,EAAA,CAAG,EAAE,CAAC,CAAA,gBAAA,EAAmBA,WAAAA,CAAW,EAAA,CAAG,IAAI,CAAC,CAAA,gBAAA,EAAmB,EAAA,CAAG,IAAI,CAAA,SAAA,EAAYA,WAAAA,CAAW,EAAA,CAAG,IAAI,CAAC,CAAA,GAAA,EAAM,EAAA,CAAG,IAAI,CAAA,wDAAA;AAAA,KACzN,CACC,KAAK,EAAE,CAAA;AACV,IAAA,OAAO;AAAA,wDAAA,EAC6C,QAAQ,aAAA,GAAgB,EAAE,mBAAmBA,WAAAA,CAAW,EAAA,CAAG,EAAE,CAAC,CAAA;AAAA,uEAAA,EAC/CA,WAAAA,CAAW,GAAG,EAAE,CAAC,KAAKA,WAAAA,CAAW,WAAA,CAAY,EAAE,CAAC,CAAC,CAAA;AAAA,mDAAA,EACrE,OAAO,CAAA;AAAA;AAAA,cAAA,EAE5C,cAAc;AAAA,cAAA,EACd,QAAQ;AAAA;AAAA;AAAA;AAAA,MAAA,CAAA;AAAA,EAKpB,CAAC,CAAA,CACA,IAAA,CAAK,EAAE,CAAA;AACV,EAAA,MAAM,WAAA,GAAc,mDAAmD,SAAS,CAAA,SAAA,EAAY,OAAO,CAAA,gDAAA,EAAmD,QAAA,CAAS,WAAW,CAAC,CAAA,gBAAA,CAAA;AAC3K,EAAA,UAAA,CAAW,SAAA,GAAY,CAAA,6BAAA,EAAgC,IAAI,CAAA,EAAG,WAAW,CAAA,MAAA,CAAA;AAC3E;AAEA,SAAS,cAAc,CAAA,EAAqB;AAC1C,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,OAAA,CAAqB,mBAAmB,CAAA;AACrE,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,YAAA,CAAa;AAAA,MACX,IAAA,EAAM,SAAA;AAAA,MACN,SAAA,EAAW,cAAc,OAAA,CAAQ;AAAA,KAClC,CAAA;AAAA,EACH;AACF;AAEA,SAAS,gBAAgB,CAAA,EAAqB;AAC5C,EAAA,IAAI,QAAA,EAAU;AACd,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,EAAA,IAAI,OAAO,OAAA,CAAQ,eAAe,KAAK,MAAA,CAAO,OAAA,CAAQ,aAAa,CAAA,EAAG;AACtE,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,OAAA,CAAqB,gBAAgB,CAAA;AACxD,EAAA,IAAI,GAAA,EAAK;AACP,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,WAAW,GAAA,CAAI,OAAA,CAAQ,QAAS,CAAA;AAAA,EAClE;AACF;AAEA,SAASE,aAAY,CAAA,EAAqB;AACxC,EAAA,IAAI,CAAA,CAAE,WAAW,CAAA,EAAG;AACpB,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AAEjB,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,OAAA,CAAqB,mBAAmB,CAAA;AAC5D,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,IAAA,MAAM,SAAA,GAAY,KAAK,OAAA,CAAQ,QAAA;AAC/B,IAAA,MAAM,IAAA,GAAO,KAAK,OAAA,CAAQ,MAAA;AAC1B,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,MAAM,CAAA;AAC5C,IAAA,MAAM,MAAM,MAAA,EAAO;AACnB,IAAA,MAAM,MAAA,GAAS,KAAK,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,SAAS,CAAA;AAC3D,IAAA,MAAM,KAAA,GAAQ,QAAQ,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,aAAa,IAAI,CAAA;AAC5D,IAAA,MAAM,EAAA,GAAK,OAAO,SAAA,CAAU,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,SAAS,CAAA;AAC5D,IAAA,IACE,EAAA,KACC,OAAO,EAAA,CAAG,KAAA,KAAU,QAAA,IACnB,OAAO,EAAA,CAAG,KAAA,KAAU,QAAA,IACpB,OAAO,EAAA,CAAG,KAAA,KAAU,SAAA,CAAA,EACtB;AACA,MAAA,QAAA,GAAW;AAAA,QACT,IAAA,EAAM,UAAA;AAAA,QACN,SAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAY,EAAA,CAAG,KAAA;AAAA,QACf,aAAa,CAAA,CAAE,OAAA;AAAA,QACf,WAAA,EAAa;AAAA,OACf;AAAA,IACF;AACA,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,OAAA,CAAqB,aAAa,CAAA;AACtD,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,OAAA,CAAqB,eAAe,CAAA;AACtD,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAM,SAAA,GAAY,KAAK,OAAA,CAAQ,MAAA;AAC/B,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AACvC,MAAA,MAAM,MAAM,MAAA,EAAO;AACnB,MAAA,MAAM,EAAA,GAAK,KAAK,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,SAAS,CAAA;AACvD,MAAA,MAAM,EAAA,GAAK,EAAA,EAAI,WAAA,CAAY,KAAK,CAAA;AAChC,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,QAAA,GAAW;AAAA,UACT,IAAA,EAAM,YAAA;AAAA,UACN,SAAA;AAAA,UACA,KAAA;AAAA,UACA,IAAA,EAAM,KAAK,OAAA,CAAQ,IAAA;AAAA,UACnB,aAAa,CAAA,CAAE,OAAA;AAAA,UACf,cAAc,EAAA,CAAG,KAAA;AAAA,UACjB,YAAY,EAAA,CAAG;AAAA,SACjB;AAAA,MACF;AACA,MAAA;AAAA,IACF;AAAA,EACF;AACA,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,OAAA,CAAqB,eAAe,CAAA;AACzD,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAM,SAAA,GAAY,MAAM,OAAA,CAAQ,MAAA;AAChC,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AACxC,IAAA,MAAM,MAAM,MAAA,EAAO;AACnB,IAAA,MAAM,EAAA,GAAK,KAAK,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,SAAS,CAAA;AACvD,IAAA,MAAM,EAAA,GAAK,EAAA,EAAI,WAAA,CAAY,KAAK,CAAA;AAChC,IAAA,IAAI,EAAA,EAAI;AACN,MAAA,QAAA,GAAW;AAAA,QACT,IAAA,EAAM,YAAA;AAAA,QACN,SAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA,EAAM,MAAA;AAAA,QACN,aAAa,CAAA,CAAE,OAAA;AAAA,QACf,cAAc,EAAA,CAAG,KAAA;AAAA,QACjB,YAAY,EAAA,CAAG;AAAA,OACjB;AAAA,IACF;AACA,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,OAAA,CAAqB,mBAAmB,CAAA;AACrE,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,QAAA,GAAW,EAAE,IAAA,EAAM,SAAA,EAAW,EAAA,EAAI,aAAA,CAAc,QAAQ,SAAA,EAAW;AACnE,IAAA;AAAA,EACF;AACA,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,OAAA,CAAqB,gBAAgB,CAAA;AACzD,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAM,IAAA,GAAO,KAAK,qBAAA,EAAsB;AACxC,IAAA,cAAA,CAAe,QAAA,CAAS,CAAA,CAAE,OAAA,GAAU,IAAA,CAAK,IAAI,CAAC,CAAA;AAC9C,IAAA,QAAA,GAAW,EAAE,MAAM,MAAA,EAAO;AAAA,EAC5B;AACF;AAEA,SAASC,aAAY,CAAA,EAAqB;AACxC,EAAA,IAAI,CAAC,QAAA,EAAU;AACf,EAAA,CAAA,CAAE,cAAA,EAAe;AACjB,EAAA,IAAI,QAAA,CAAS,SAAS,MAAA,EAAQ;AAC5B,IAAA,MAAM,OAAO,QAAA,EAAU,aAAA;AAAA,MACrB;AAAA,KACF;AACA,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,IAAA,GAAO,KAAK,qBAAA,EAAsB;AACxC,IAAA,MAAM,CAAA,GAAI,QAAA,CAAS,CAAA,CAAE,OAAA,GAAU,KAAK,IAAI,CAAA;AACxC,IAAA,cAAA,CAAe,CAAC,CAAA;AAChB,IAAA,eAAA,CAAgB,EAAE,OAAA,EAAS,CAAA,CAAE,OAAA,EAAS,CAAA,OAAA,EAAK,CAAC,CAAA,GAAA,CAAK,CAAA;AACjD,IAAA;AAAA,EACF;AACA,EAAA,IAAI,QAAA,CAAS,SAAS,SAAA,EAAW;AAC/B,IAAA,MAAM,OAAO,QAAA,EAAU,aAAA;AAAA,MACrB;AAAA,KACF;AACA,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,IAAA,GAAO,KAAK,qBAAA,EAAsB;AACxC,IAAA,MAAM,CAAA,GAAI,QAAA,CAAS,CAAA,CAAE,OAAA,GAAU,KAAK,IAAI,CAAA;AACxC,IAAA,aAAA,CAAc,QAAA,CAAS,EAAA,EAAI,EAAE,IAAA,EAAM,GAAG,CAAA;AACtC,IAAA,eAAA,CAAgB,EAAE,OAAA,EAAS,CAAA,CAAE,OAAA,EAAS,CAAA,UAAA,EAAM,CAAC,CAAA,GAAA,CAAK,CAAA;AAClD,IAAA;AAAA,EACF;AACA,EAAA,IAAI,QAAA,CAAS,SAAS,UAAA,EAAY;AAChC,IAAA,MAAM,IAAA,GAAO,CAAA,CAAE,OAAA,GAAU,QAAA,CAAS,WAAA;AAClC,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,OAAO,CAAA;AACpC,IAAA,MAAM,UAAU,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,QAAA,CAAS,YAAY,EAAE,CAAA;AACnD,IAAA,IAAI,OAAA,KAAY,SAAS,WAAA,EAAa;AACpC,MAAA,mBAAA;AAAA,QACE,QAAA,CAAS,SAAA;AAAA,QACT,QAAA,CAAS,IAAA;AAAA,QACT,QAAA,CAAS;AAAA,OACX;AACA,MAAA,gBAAA;AAAA,QACE,QAAA,CAAS,SAAA;AAAA,QACT,QAAA,CAAS,IAAA;AAAA,QACT,OAAA;AAAA,QACA,QAAA,CAAS;AAAA,OACX;AACA,MAAA,QAAA,CAAS,WAAA,GAAc,OAAA;AAAA,IACzB;AACA,IAAA,eAAA,CAAgB,CAAA,CAAE,SAAS,CAAA,CAAE,OAAA,EAAS,UAAK,QAAA,CAAS,IAAI,CAAA,GAAA,EAAM,OAAO,CAAA,GAAA,CAAK,CAAA;AAC1E,IAAA;AAAA,EACF;AACA,EAAA,IAAI,QAAA,CAAS,SAAS,YAAA,EAAc;AAClC,IAAA,MAAM,IAAA,GAAO,CAAA,CAAE,OAAA,GAAU,QAAA,CAAS,WAAA;AAClC,IAAA,MAAM,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,OAAO,CAAA;AACpC,IAAA,IAAI,QAAA,CAAS,SAAS,OAAA,EAAS;AAC7B,MAAA,gBAAA,CAAiB,QAAA,CAAS,SAAA,EAAW,QAAA,CAAS,KAAA,EAAO;AAAA,QACnD,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,QAAA,CAAS,eAAe,EAAE;AAAA,OAC9C,CAAA;AAAA,IACH,CAAA,MAAA,IAAW,QAAA,CAAS,IAAA,KAAS,KAAA,EAAO;AAClC,MAAA,gBAAA,CAAiB,QAAA,CAAS,SAAA,EAAW,QAAA,CAAS,KAAA,EAAO;AAAA,QACnD,KAAK,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,QAAA,CAAS,aAAa,EAAE;AAAA,OAC1C,CAAA;AAAA,IACH,CAAA,MAAO;AACL,MAAA,gBAAA,CAAiB,QAAA,CAAS,SAAA,EAAW,QAAA,CAAS,KAAA,EAAO;AAAA,QACnD,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,QAAA,CAAS,eAAe,EAAE,CAAA;AAAA,QAC7C,KAAK,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,QAAA,CAAS,aAAa,EAAE;AAAA,OAC1C,CAAA;AAAA,IACH;AACA,IAAA,MAAM,CAAA,GAAI,SAAS,YAAA,GAAe,EAAA;AAClC,IAAA,MAAM,CAAA,GAAI,SAAS,UAAA,GAAa,EAAA;AAChC,IAAA,eAAA;AAAA,MACE,CAAA,CAAE,OAAA;AAAA,MACF,CAAA,CAAE,OAAA;AAAA,MACF,CAAA,OAAA,EAAK,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,CAAC,CAAC,CAAA,MAAA,EAAI,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,CAAC,CAAC,CAAA,GAAA;AAAA,KACvC;AAAA,EACF;AACF;AAEA,SAASC,UAAAA,GAAkB;AACzB,EAAA,QAAA,GAAW,IAAA;AACX,EAAA,eAAA,EAAgB;AAClB;;;ACzdO,IAAM,WAAA,GAIP;AAAA,EACJ;AAAA,IACE,QAAA,EAAU,KAAA;AAAA,IACV,KAAA,EAAO,KAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,sDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,6BAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,sDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,uDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,sDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,sDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,sDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,KAAA;AAAA,IACV,KAAA,EAAO,KAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,uDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,uDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,uDAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO,mBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,sDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,sDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO,kBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,sDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,uDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,oBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,uBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,QAAA;AAAA,QACJ,KAAA,EAAO,GAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,QAAA;AAAA,QACJ,KAAA,EAAO,GAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,qBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,QAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,QAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wCAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,mDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,OAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,GAAA,EAAK,yCAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,SAAA;AAAA,IACV,KAAA,EAAO,iBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,QAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,QAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,QAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,QAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,sDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,MAAA;AAAA,IACV,KAAA,EAAO,WAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,qDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,iDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,gDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,kDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,2CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,oDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,8CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,+CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,0CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,6CAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,4CAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,SAAA;AAAA,IACV,KAAA,EAAO,0BAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,KAAA;AAAA,IACV,KAAA,EAAO,cAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kCAAA;AAAA,QACJ,KAAA,EAAO,8BAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mCAAA;AAAA,QACJ,KAAA,EAAO,+BAAA;AAAA,QACP,GAAA,EAAK,kFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kCAAA;AAAA,QACJ,KAAA,EAAO,8BAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iCAAA;AAAA,QACJ,KAAA,EAAO,6BAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,+BAAA;AAAA,QACJ,KAAA,EAAO,2BAAA;AAAA,QACP,GAAA,EAAK,8EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sCAAA;AAAA,QACJ,KAAA,EAAO,kCAAA;AAAA,QACP,GAAA,EAAK,qFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iCAAA;AAAA,QACJ,KAAA,EAAO,6BAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mCAAA;AAAA,QACJ,KAAA,EAAO,+BAAA;AAAA,QACP,GAAA,EAAK,kFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kCAAA;AAAA,QACJ,KAAA,EAAO,8BAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2CAAA;AAAA,QACJ,KAAA,EAAO,uCAAA;AAAA,QACP,GAAA,EAAK,0FAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0CAAA;AAAA,QACJ,KAAA,EAAO,sCAAA;AAAA,QACP,GAAA,EAAK,yFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kCAAA;AAAA,QACJ,KAAA,EAAO,8BAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0CAAA;AAAA,QACJ,KAAA,EAAO,sCAAA;AAAA,QACP,GAAA,EAAK,yFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yCAAA;AAAA,QACJ,KAAA,EAAO,qCAAA;AAAA,QACP,GAAA,EAAK,wFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO,QAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,mBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,6BAAA;AAAA,QACJ,KAAA,EAAO,yBAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,QAAA;AAAA,IACV,KAAA,EAAO,oBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,QAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,GAAA,EAAK,uDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,eAAA;AAAA,IACV,KAAA,EAAO,wBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gCAAA;AAAA,QACJ,KAAA,EAAO,4BAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,QAAA;AAAA,IACV,KAAA,EAAO,cAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iCAAA;AAAA,QACJ,KAAA,EAAO,6BAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kCAAA;AAAA,QACJ,KAAA,EAAO,8BAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,6BAAA;AAAA,QACJ,KAAA,EAAO,yBAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO,eAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iCAAA;AAAA,QACJ,KAAA,EAAO,6BAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO,kBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,+BAAA;AAAA,QACJ,KAAA,EAAO,2BAAA;AAAA,QACP,GAAA,EAAK,8EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,MAAA;AAAA,IACV,KAAA,EAAO,kBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO,kBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,wBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,SAAA;AAAA,IACV,KAAA,EAAO,oBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kCAAA;AAAA,QACJ,KAAA,EAAO,8BAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,+BAAA;AAAA,QACJ,KAAA,EAAO,2BAAA;AAAA,QACP,GAAA,EAAK,8EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,+BAAA;AAAA,QACJ,KAAA,EAAO,2BAAA;AAAA,QACP,GAAA,EAAK,8EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iCAAA;AAAA,QACJ,KAAA,EAAO,6BAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gCAAA;AAAA,QACJ,KAAA,EAAO,4BAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gCAAA;AAAA,QACJ,KAAA,EAAO,4BAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gCAAA;AAAA,QACJ,KAAA,EAAO,4BAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kCAAA;AAAA,QACJ,KAAA,EAAO,8BAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,8BAAA;AAAA,QACJ,KAAA,EAAO,0BAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kCAAA;AAAA,QACJ,KAAA,EAAO,8BAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,uBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,6BAAA;AAAA,QACJ,KAAA,EAAO,yBAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,QAAA;AAAA,IACV,KAAA,EAAO,gBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,GAAA,EAAK,wDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,yDAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,QAAA;AAAA,IACV,KAAA,EAAO,kBAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,6BAAA;AAAA,QACJ,KAAA,EAAO,yBAAA;AAAA,QACP,GAAA,EAAK,yFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,mFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,8EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,8EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,kFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,SAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,mFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,8EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,8EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,6EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,sBAAA;AAAA,QACP,GAAA,EAAK,sFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,UAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,+EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,iFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,4EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,gFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,mFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,oFAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,qFAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,QAAA;AAAA,IACV,KAAA,EAAO,WAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,WAAA;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,GAAA,EAAK,0DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU,QAAA;AAAA,IACV,KAAA,EAAO,QAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,0BAAA;AAAA,QACJ,KAAA,EAAO,mBAAA;AAAA,QACP,GAAA,EAAK,yEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,2BAAA;AAAA,QACJ,KAAA,EAAO,oBAAA;AAAA,QACP,GAAA,EAAK,0EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,4BAAA;AAAA,QACJ,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,2EAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,yBAAA;AAAA,QACJ,KAAA,EAAO,kBAAA;AAAA,QACP,GAAA,EAAK,wEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,wBAAA;AAAA,QACJ,KAAA,EAAO,iBAAA;AAAA,QACP,GAAA,EAAK,uEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,gBAAA;AAAA,QACJ,KAAA,EAAO,SAAA;AAAA,QACP,GAAA,EAAK,+DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,oBAAA;AAAA,QACJ,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,mEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,sBAAA;AAAA,QACJ,KAAA,EAAO,eAAA;AAAA,QACP,GAAA,EAAK,qEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,YAAA;AAAA,QACJ,KAAA,EAAO,KAAA;AAAA,QACP,GAAA,EAAK,2DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,mBAAA;AAAA,QACJ,KAAA,EAAO,YAAA;AAAA,QACP,GAAA,EAAK,kEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,uBAAA;AAAA,QACJ,KAAA,EAAO,gBAAA;AAAA,QACP,GAAA,EAAK,sEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,iBAAA;AAAA,QACJ,KAAA,EAAO,UAAA;AAAA,QACP,GAAA,EAAK,gEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,kBAAA;AAAA,QACJ,KAAA,EAAO,WAAA;AAAA,QACP,GAAA,EAAK,iEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,qBAAA;AAAA,QACJ,KAAA,EAAO,cAAA;AAAA,QACP,GAAA,EAAK,oEAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,cAAA;AAAA,QACJ,KAAA,EAAO,OAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,eAAA;AAAA,QACJ,KAAA,EAAO,QAAA;AAAA,QACP,GAAA,EAAK,8DAAA;AAAA,QACL,QAAA,EAAU;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAA,EAAI,aAAA;AAAA,QACJ,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK,4DAAA;AAAA,QACL,QAAA,EAAU;AAAA;AACZ;AACF;AAEJ,CAAA;AAEO,IAAM,eAA4B,WAAA,CAAY,OAAA,CAAQ,CAAC,CAAA,KAAM,EAAE,OAAO,CAAA;;;ACthW7E,IAAM,eAAA,GAAgD;AAAA,EACpD,GAAA,EAAK,eAAA;AAAA,EACL,GAAA,EAAK,eAAA;AAAA,EACL,KAAA,EAAO,iBAAA;AAAA,EACP,KAAA,EAAO,cAAA;AAAA,EACP,QAAA,EAAU,cAAA;AAAA,EACV,QAAA,EAAU,gBAAA;AAAA,EACV,QAAA,EAAU,cAAA;AAAA,EACV,OAAA,EAAS,WAAA;AAAA,EACT,IAAA,EAAM,gBAAA;AAAA,EACN,OAAA,EAAS,eAAA;AAAA,EACT,GAAA,EAAK,eAAA;AAAA,EACL,KAAA,EAAO,cAAA;AAAA,EACP,QAAA,EAAU,eAAA;AAAA,EACV,MAAA,EAAQ,kBAAA;AAAA,EACR,aAAA,EAAe,gBAAA;AAAA,EACf,MAAA,EAAQ,eAAA;AAAA,EACR,KAAA,EAAO,iBAAA;AAAA,EACP,KAAA,EAAO,cAAA;AAAA,EACP,IAAA,EAAM,gBAAA;AAAA,EACN,KAAA,EAAO,iBAAA;AAAA,EACP,OAAA,EAAS,mBAAA;AAAA,EACT,MAAA,EAAQ,eAAA;AAAA,EACR,MAAA,EAAQ,kBAAA;AAAA,EACR,MAAA,EAAQ,eAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAA;AAEA,IAAM,SAAA,GAAY,GAAA;AAEX,IAAM,iBAAA,GAAN,MAAM,kBAAA,CAAkB;AAAA,EACrB,MAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA,GAAuC,KAAA;AAAA,EACvC,KAAA,GAAgB,EAAA;AAAA,EAChB,aAAA,GAAwB,CAAA;AAAA,EACxB,eAA4B,EAAC;AAAA,EAC7B,QAAA,GAAwC,IAAA;AAAA,EACxC,QAAA,GAAkC,IAAA;AAAA,EAE1C,WAAA,CACE,MAAA,EACAC,OAAAA,EACAC,SAAAA,EACA;AACA,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,MAAA,GAASD,OAAAA;AACd,IAAA,IAAA,CAAK,QAAA,GAAWC,SAAAA;AAChB,IAAA,IAAA,CAAK,IAAA,EAAK;AAAA,EACZ;AAAA,EAEA,OAAO,KAAA,GAAkC;AACvC,IAAA,MAAM,SAAS,QAAA,CAAS,cAAA;AAAA,MACtB;AAAA,KACF;AACA,IAAA,MAAMD,OAAAA,GAAS,QAAA,CAAS,cAAA,CAAe,kBAAkB,CAAA;AACzD,IAAA,MAAMC,YAAW,QAAA,CAAS,cAAA;AAAA,MACxB;AAAA,KACF;AACA,IAAA,IAAI,CAAC,MAAA,IAAU,CAACD,OAAAA,IAAU,CAACC,WAAU,OAAO,IAAA;AAC5C,IAAA,OAAO,IAAI,kBAAA,CAAkB,MAAA,EAAQD,OAAAA,EAAQC,SAAQ,CAAA;AAAA,EACvD;AAAA,EAEA,IAAA,GAAa;AACX,IAAA,IAAA,CAAK,MAAA,EAAO;AACZ,IAAA,IAAI,OAAO,IAAA,CAAK,MAAA,CAAO,cAAc,UAAA,EAAY,IAAA,CAAK,OAAO,SAAA,EAAU;AAAA,SAClE,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,MAAA,EAAQ,EAAE,CAAA;AACxC,IAAA,UAAA,CAAW,MAAM,IAAA,CAAK,QAAA,CAAS,KAAA,IAAS,CAAC,CAAA;AAAA,EAC3C;AAAA,EAEA,KAAA,GAAc;AACZ,IAAA,IAAI,OAAO,IAAA,CAAK,MAAA,CAAO,UAAU,UAAA,EAAY,IAAA,CAAK,OAAO,KAAA,EAAM;AAAA,SAC1D,IAAA,CAAK,MAAA,CAAO,eAAA,CAAgB,MAAM,CAAA;AACvC,IAAA,IAAA,CAAK,UAAU,UAAA,EAAW;AAC1B,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAAA,EAClB;AAAA,EAEQ,IAAA,GAAa;AACnB,IAAA,IAAI,KAAA,GAAuB,IAAA;AAC3B,IAAA,IAAA,CAAK,QAAA,CAAS,gBAAA,CAAiB,OAAA,EAAS,MAAM;AAC5C,MAAA,IAAA,CAAK,QAAQ,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,IAAA,GAAO,WAAA,EAAY;AACpD,MAAA,IAAI,KAAA,KAAU,IAAA,EAAM,YAAA,CAAa,KAAK,CAAA;AACtC,MAAA,KAAA,GAAQ,OAAO,UAAA,CAAW,MAAM,IAAA,CAAK,MAAA,IAAU,EAAE,CAAA;AAAA,IACnD,CAAC,CAAA;AACD,IAAA,IAAA,CAAK,MAAA,CAAO,gBAAA,CAAiB,OAAA,EAAS,CAAC,CAAA,KAAM;AAC3C,MAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,MAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,0BAA0B,CAAA,EAAG;AAC9C,QAAA,IAAA,CAAK,KAAA,EAAM;AACX,QAAA;AAAA,MACF;AACA,MAAA,MAAM,MAAA,GAAS,MAAA,CAAO,OAAA,CAAqB,iBAAiB,CAAA;AAC5D,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,IAAA,CAAK,cAAA,GAAkB,MAAA,CAAO,OAAA,CAAQ,OAAA,IAAW,KAAA;AAEjD,QAAA,IAAA,CAAK,MAAA,EAAO;AACZ,QAAA;AAAA,MACF;AACA,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAqB,kBAAkB,CAAA;AAC9D,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,MAAM,EAAA,GAAK,OAAA,CAAQ,OAAA,CAAQ,QAAA,IAAY,EAAA;AACvC,QAAA,IAAA,CAAK,WAAW,EAAE,CAAA;AAClB,QAAA;AAAA,MACF;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AAAA,EAEQ,QAAA,GAAwB;AAC9B,IAAA,MAAM,IAAA,GACJ,IAAA,CAAK,cAAA,KAAmB,KAAA,GACpB,eACC,WAAA,CAAY,IAAA,CAAK,CAAC,CAAA,KAAM,EAAE,QAAA,KAAa,IAAA,CAAK,cAAc,CAAA,EACvD,WAAW,EAAC;AACtB,IAAA,IAAI,CAAC,IAAA,CAAK,KAAA,EAAO,OAAO,IAAA;AACxB,IAAA,MAAM,IAAI,IAAA,CAAK,KAAA;AACf,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,MACV,CAAC,EAAA,KACC,EAAA,CAAG,EAAA,CAAG,aAAY,CAAE,QAAA,CAAS,CAAC,CAAA,IAAK,EAAA,CAAG,KAAA,CAAM,WAAA,EAAY,CAAE,SAAS,CAAC;AAAA,KACxE;AAAA,EACF;AAAA,EAEQ,MAAA,GAAe;AACrB,IAAA,MAAM,QAAA,GAAW,KAAK,QAAA,EAAS;AAC/B,IAAA,IAAA,CAAK,YAAA,GAAe,QAAA;AACpB,IAAA,MAAM,IAAA,GAAiC;AAAA,MACrC,KAAA;AAAA,MACA,GAAG,WAAA,CAAY,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,QAAQ;AAAA,KACtC;AACA,IAAA,MAAM,MAAA,GAAS,IAAA,CACZ,GAAA,CAAI,CAAC,CAAA,KAAM;AACV,MAAA,MAAM,KAAA,GAAQ,CAAA,KAAM,KAAA,GAAQ,cAAA,GAAO,gBAAgB,CAAC,CAAA;AACpD,MAAA,MAAM,KAAA,GACJ,CAAA,KAAM,KAAA,GACF,YAAA,CAAa,SACZ,WAAA,CAAY,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,QAAA,KAAa,CAAC,CAAA,EAAG,QAAQ,MAAA,IAAU,CAAA;AACpE,MAAA,OAAO,CAAA,qCAAA,EAAwC,CAAC,CAAA,6BAAA,EAAgC,IAAA,CAAK,cAAA,KAAmB,CAAA,GAAI,WAAA,GAAc,EAAE,CAAA,EAAA,EAAK,KAAK,CAAA,qCAAA,EAAwC,KAAK,CAAA,gBAAA,CAAA;AAAA,IACrL,CAAC,CAAA,CACA,IAAA,CAAK,EAAE,CAAA;AAEV,IAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AACzB,MAAA,IAAA,CAAK,OAAO,SAAA,GAAY;AAAA,yCAAA,EACa,MAAM,CAAA;AAAA,6GAAA,EACgC,aAAa,MAAM,CAAA;AAAA,MAAA,CAAA;AAE9F,MAAA;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAA,CAAK,GAAA,CAAI,SAAA,EAAW,SAAS,MAAM,CAAA;AACxD,IAAA,MAAM,OAAO,QAAA,CACV,KAAA,CAAM,CAAA,EAAG,IAAA,CAAK,aAAa,CAAA,CAC3B,GAAA,CAAI,CAAC,EAAA,KAAO,KAAK,UAAA,CAAW,EAAE,CAAC,CAAA,CAC/B,KAAK,EAAE,CAAA;AACV,IAAA,MAAM,YAAY,IAAA,CAAK,GAAA,CAAI,GAAG,QAAA,CAAS,MAAA,GAAS,KAAK,aAAa,CAAA;AAElE,IAAA,IAAA,CAAK,OAAO,SAAA,GAAY;AAAA,uCAAA,EACa,MAAM,CAAA;AAAA,kDAAA,EACA,QAAA,CAAS,MAAM,CAAA,OAAA,EAAK,IAAA,CAAK,KAAA,GAAQ,CAAA,MAAA,EAASN,WAAAA,CAAW,IAAA,CAAK,KAAK,CAAC,CAAA,iCAAA,CAAA,GAAkB,EAAE,CAAA;AAAA,0DAAA,EACvE,IAAI,CAAA;AAAA,MAAA,EACxD,SAAA,GAAY,CAAA,GAAI,CAAA,4DAAA,EAA+D,SAAS,2CAAkB,EAAE;AAAA,IAAA,CAAA;AAGhH,IAAA,IAAA,CAAK,UAAU,UAAA,EAAW;AAC1B,IAAA,MAAM,OAAO,QAAA,CAAS,cAAA;AAAA,MACpB;AAAA,KACF;AACA,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,IAAA,CAAK,WAAW,IAAI,oBAAA;AAAA,QAClB,CAAC,OAAA,KAAY;AACX,UAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,YAAA,IAAI,KAAA,CAAM,cAAA,EAAgB,IAAA,CAAK,QAAA,EAAS;AAAA,UAC1C;AAAA,QACF,CAAA;AAAA,QACA;AAAA,UACE,IAAA,EAAM,IAAA,CAAK,MAAA,CAAO,aAAA,CAAc,qBAAqB,CAAA,IAAK,IAAA;AAAA,UAC1D,UAAA,EAAY;AAAA;AACd,OACF;AACA,MAAA,IAAA,CAAK,QAAA,CAAS,QAAQ,IAAI,CAAA;AAAA,IAC5B;AAAA,EACF;AAAA,EAEQ,QAAA,GAAiB;AACvB,IAAA,MAAM,IAAA,GAAO,QAAA,CAAS,cAAA,CAAe,kBAAkB,CAAA;AACvD,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,OAAO,IAAA,CAAK,GAAA;AAAA,MAChB,KAAK,aAAA,GAAgB,SAAA;AAAA,MACrB,KAAK,YAAA,CAAa;AAAA,KACpB;AACA,IAAA,MAAM,QAAQ,IAAA,CAAK,YAAA,CAAa,KAAA,CAAM,IAAA,CAAK,eAAe,IAAI,CAAA;AAC9D,IAAA,IAAA,CAAK,kBAAA;AAAA,MACH,WAAA;AAAA,MACA,KAAA,CAAM,GAAA,CAAI,CAAC,EAAA,KAAO,IAAA,CAAK,WAAW,EAAE,CAAC,CAAA,CAAE,IAAA,CAAK,EAAE;AAAA,KAChD;AACA,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAA;AACrB,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,YAAA,CAAa,MAAA,GAAS,IAAA;AAC7C,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,IAAI,YAAY,CAAA,EAAG;AACjB,QAAA,IAAA,CAAK,QAAA,CAAS,WAAA,GAAc,CAAA,EAAG,SAAS,CAAA,gCAAA,CAAA;AAAA,MAC1C,CAAA,MAAO;AACL,QAAA,IAAA,CAAK,UAAU,UAAA,EAAW;AAC1B,QAAA,IAAA,CAAK,SAAS,MAAA,EAAO;AACrB,QAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,WAAW,EAAA,EAAuB;AACxC,IAAA,OAAO,CAAA,sCAAA,EAAyCA,WAAAA,CAAW,EAAA,CAAG,EAAE,CAAC,CAAA,kCAAA,EAAqCA,WAAAA,CAAW,EAAA,CAAG,KAAK,CAAC,CAAA,MAAA,EAAMA,WAAAA,CAAW,EAAA,CAAG,EAAE,CAAC,CAAA;AAAA,gDAAA,EACnGA,WAAAA,CAAW,GAAG,GAAG,CAAC,UAAUA,WAAAA,CAAW,EAAA,CAAG,KAAK,CAAC,CAAA;AAAA,YAAA,EACpFA,WAAAA,CAAW,EAAA,CAAG,KAAK,CAAC,CAAA;AAAA,aAAA,CAAA;AAAA,EAEhC;AAAA,EAEQ,WAAW,MAAA,EAAsB;AACvC,IAAA,MAAM,MAAM,MAAA,EAAO;AACnB,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,MAAM,OAAO,YAAA,CAAa,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,MAAM,CAAA;AACrD,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,EAAA,GAAK,GAAA,CAAI,MAAA,CAAO,KAAA,GAAQ,CAAA;AAC9B,IAAA,MAAM,EAAA,GAAK,GAAA,CAAI,MAAA,CAAO,MAAA,GAAS,CAAA;AAC/B,IAAA,MAAM,WAAW,MAAA,CAAO,OAAA,CAAQ,eAAe,EAAE,CAAA,CAAE,aAAY,IAAK,MAAA;AACpE,IAAA,MAAM,EAAA,GAAK,gBAAgB,QAAQ,CAAA;AACnC,IAAA,MAAM,EAAA,GAAmB;AAAA,MACvB,IAAA,EAAM,OAAA;AAAA,MACN,EAAA;AAAA,MACA,QAAA,EAAU,CAAA;AAAA,MACV,aAAa,EAAC;AAAA,MACd,QAAQ,EAAC;AAAA,MACT,GAAG,EAAA,GAAK,EAAA;AAAA,MACR,GAAG,EAAA,GAAK,EAAA;AAAA,MACR,KAAA,EAAO,EAAA;AAAA,MACP,MAAA,EAAQ,EAAA;AAAA,MACR,OAAA,EAAS,qBAAA,CAAsB,IAAA,CAAK,GAAG,CAAA;AAAA,MACvC,mBAAA,EAAqB,eAAA;AAAA,MACrB,OAAA,EAAS;AAAA,KACX;AACA,IAAA,UAAA,CAAW,EAAE,CAAA;AACb,IAAA,IAAA,CAAK,KAAA,EAAM;AAAA,EACb;AACF,CAAA;AAEA,SAASA,YAAW,CAAA,EAAmB;AACrC,EAAA,OAAO,CAAA,CACJ,OAAA,CAAQ,IAAA,EAAM,OAAO,EACrB,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,QAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,OAAA,CAAQ,MAAM,QAAQ,CAAA;AAC3B;;;ACxPA,SAAS,cAAc,GAAA,EAAuD;AAC5E,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC9B,IAAA,MAAM,GAAA,GAAM,IAAI,KAAA,EAAM;AACtB,IAAA,GAAA,CAAI,MAAA,GAAS,MAAM,OAAA,CAAQ,EAAE,CAAA,EAAG,IAAI,YAAA,EAAc,CAAA,EAAG,GAAA,CAAI,aAAA,EAAe,CAAA;AACxE,IAAA,GAAA,CAAI,OAAA,GAAU,MAAM,OAAA,CAAQ,IAAI,CAAA;AAChC,IAAA,GAAA,CAAI,GAAA,GAAM,GAAA;AAAA,EACZ,CAAC,CAAA;AACH;AAEA,SAAS,cAAc,IAAA,EAA6B;AAClD,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,IAAA,MAAM,MAAA,GAAS,IAAI,UAAA,EAAW;AAC9B,IAAA,MAAA,CAAO,SAAS,MAAM,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,MAAM,CAAC,CAAA;AACnD,IAAA,MAAA,CAAO,UAAU,MAAM,MAAA,CAAO,IAAI,KAAA,CAAM,gEAAc,CAAC,CAAA;AACvD,IAAA,MAAA,CAAO,cAAc,IAAI,CAAA;AAAA,EAC3B,CAAC,CAAA;AACH;AAGA,eAAsB,oBAAA,CACpB,MACA,IAAA,EACe;AACf,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,IAAA,CAAK,SAAA,CAAU,iGAAsB,MAAM,CAAA;AAC3C,IAAA;AAAA,EACF;AACA,EAAA,IAAI;AACF,IAAA,IAAA,CAAK,UAAU,8CAAW,CAAA;AAC1B,IAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,IAAI,CAAA;AACxC,IAAA,MAAM,EAAA,GAAK,GAAA,CAAI,MAAA,CAAO,KAAA,GAAQ,CAAA;AAC9B,IAAA,MAAM,EAAA,GAAK,GAAA,CAAI,MAAA,CAAO,MAAA,GAAS,CAAA;AAC/B,IAAA,MAAM,OAAA,GAAU,MAAM,aAAA,CAAc,OAAO,CAAA;AAC3C,IAAA,MAAM,MAAA,GAAS,KAAK,GAAA,CAAI,GAAA,CAAI,OAAO,KAAA,EAAO,GAAA,CAAI,MAAA,CAAO,MAAM,CAAA,GAAI,GAAA;AAC/D,IAAA,IAAI,CAAA,GAAI,SAAS,CAAA,IAAK,GAAA;AACtB,IAAA,IAAI,CAAA,GAAI,SAAS,CAAA,IAAK,GAAA;AACtB,IAAA,IAAI,CAAA,GAAI,MAAA,IAAU,CAAA,GAAI,MAAA,EAAQ;AAC5B,MAAA,MAAM,CAAA,GAAI,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,GAAG,CAAC,CAAA;AAChC,MAAA,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,CAAA,GAAI,CAAC,CAAA;AACpB,MAAA,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,CAAA,GAAI,CAAC,CAAA;AAAA,IACtB;AACA,IAAA,MAAM,EAAA,GAAK,gBAAgB,KAAK,CAAA;AAChC,IAAA,UAAA,CAAW;AAAA,MACT,IAAA,EAAM,OAAA;AAAA,MACN,EAAA;AAAA,MACA,QAAA,EAAU,CAAA;AAAA,MACV,aAAa,EAAC;AAAA,MACd,QAAQ,EAAC;AAAA,MACT,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,EAAA,GAAK,IAAI,CAAC,CAAA;AAAA,MACxB,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,EAAA,GAAK,IAAI,CAAC,CAAA;AAAA,MACxB,KAAA,EAAO,CAAA;AAAA,MACP,MAAA,EAAQ,CAAA;AAAA,MACR,OAAA,EAAS,qBAAqB,OAAO,CAAA;AAAA,MACrC,mBAAA,EAAqB,eAAA;AAAA,MACrB,OAAA,EAAS;AAAA,KACV,CAAA;AACD,IAAA,IAAA,CAAK,SAAA,CAAU,CAAA,8CAAA,EAAc,IAAA,CAAK,IAAI,KAAK,IAAI,CAAA;AAAA,EACjD,SAAS,GAAA,EAAK;AACZ,IAAA,IAAA,CAAK,SAAA;AAAA,MACH,oDAAiB,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,OAAO,GAAG,CAAA,CAAA;AAAA,MAChE;AAAA,KACF;AAAA,EACF;AACF;AAEO,SAAS,uBAAuB,IAAA,EAA6B;AAClE,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,GAAA,CAAI,aAAA,CAA2B,qBAAqB,CAAA;AAC5E,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,UAAA,CAAW,gBAAA,CAAiB,UAAA,EAAY,CAAC,CAAA,KAAM;AAC7C,MAAA,IAAI,CAAC,EAAE,YAAA,EAAc;AACrB,MAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,CAAA,CAAE,aAAa,KAAA,IAAS,EAAE,CAAA,CAAE,IAAA;AAAA,QACtD,CAAC,EAAA,KAAO,EAAA,CAAG,IAAA,KAAS;AAAA,OACtB;AACA,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,CAAA,CAAE,aAAa,UAAA,GAAa,MAAA;AAC5B,QAAA,UAAA,CAAW,SAAA,CAAU,IAAI,gBAAgB,CAAA;AAAA,MAC3C;AAAA,IACF,CAAC,CAAA;AACD,IAAA,UAAA,CAAW,gBAAA;AAAA,MAAiB,WAAA;AAAA,MAAa,MACvC,UAAA,CAAW,SAAA,CAAU,MAAA,CAAO,gBAAgB;AAAA,KAC9C;AACA,IAAA,UAAA,CAAW,gBAAA,CAAiB,MAAA,EAAQ,CAAC,CAAA,KAAM;AACzC,MAAA,UAAA,CAAW,SAAA,CAAU,OAAO,gBAAgB,CAAA;AAC5C,MAAA,MAAM,IAAA,GAAO,CAAA,CAAE,YAAA,EAAc,KAAA,GAAQ,CAAC,CAAA;AACtC,MAAA,IAAI,IAAA,IAAQ,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC1C,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,KAAK,oBAAA,CAAqB,MAAM,IAAI,CAAA;AAAA,MACtC;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACA,EAAA,QAAA,CAAS,gBAAA,CAAiB,OAAA,EAAS,CAAC,CAAA,KAAM;AACxC,IAAA,IACE,QAAA,CAAS,aAAA,YAAyB,gBAAA,IAClC,QAAA,CAAS,yBAAyB,mBAAA,EAClC;AACA,MAAA;AAAA,IACF;AACA,IAAA,MAAM,KAAA,GAAQ,EAAE,aAAA,EAAe,KAAA;AAC/B,IAAA,IAAI,CAAC,KAAA,EAAO;AACZ,IAAA,KAAA,MAAW,IAAA,IAAQ,KAAA,CAAM,IAAA,CAAK,KAAK,CAAA,EAAG;AACpC,MAAA,IAAI,KAAK,IAAA,KAAS,MAAA,IAAU,KAAK,IAAA,CAAK,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC1D,QAAA,MAAM,IAAA,GAAO,KAAK,SAAA,EAAU;AAC5B,QAAA,IAAI,IAAA,EAAM;AACR,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,KAAK,oBAAA,CAAqB,MAAM,IAAI,CAAA;AACpC,UAAA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;;;ACxFO,SAAS,SAAA,CACd,EAAA,EACA,IAAA,EACA,IAAA,GAAgC,IAAA,EAC1B;AACN,EAAA,EAAA,CAAG,OAAO,WAAA,GAAc,IAAA;AACxB,EAAA,EAAA,CAAG,MAAA,CAAO,MAAM,KAAA,GACd,IAAA,KAAS,UACL,SAAA,GACA,IAAA,KAAS,SACP,SAAA,GACA,uBAAA;AACV;ACrCA,SAASA,YAAW,CAAA,EAAmB;AACrC,EAAA,OAAO,CAAA,CACJ,OAAA,CAAQ,IAAA,EAAM,OAAO,EACrB,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,QAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,OAAA,CAAQ,MAAM,QAAQ,CAAA;AAC3B;AAEO,SAAS,UAAA,GAAmB;AACjC,EAAA,MAAM,KAAA,GAAA,iBAAQ,IAAI,IAAA,EAAK,EACpB,WAAA,EAAY,CACZ,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAA,CACtB,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACd,EAAA,MAAM,EAAA,GAAK,SAAS,KAAK,CAAA,CAAA;AACzB,EAAA,MAAM,GAAA,GAAM,wBAAwB,KAAA,CAAM,EAAE,IAAI,KAAA,EAAO,EAAA,EAAI,WAAA,EAAa,EAAA,EAAI,CAAA;AAC5E,EAAA,QAAA,CAAS,GAAG,CAAA;AACd;AAEA,eAAsB,YAAY,EAAA,EAA6B;AAC7D,EAAA,EAAA,CAAG,YAAY,SAAA,GAAY,0DAAA;AAC3B,EAAA,IAAI,OAAO,EAAA,CAAG,aAAA,CAAc,SAAA,KAAc,UAAA;AACxC,IAAA,EAAA,CAAG,cAAc,SAAA,EAAU;AAAA,OACxB,EAAA,CAAG,aAAA,CAAc,YAAA,CAAa,MAAA,EAAQ,EAAE,CAAA;AAC7C,EAAA,IAAI;AACF,IAAA,MAAM,KAAA,GAAQ,MAAU,cAAA,EAAe;AACvC,IAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,MAAA,EAAA,CAAG,YAAY,SAAA,GACb,yHAAA;AACF,MAAA;AAAA,IACF;AACA,IAAA,EAAA,CAAG,WAAA,CAAY,YAAY,KAAA,CACxB,GAAA;AAAA,MACC,CAAC,EAAA,KAAO;AAAA;AAAA;AAAA,0CAAA,EAG4BA,WAAAA,CAAW,EAAA,CAAG,KAAK,CAAC,CAAA;AAAA,wGAAA,EAC0CA,WAAAA,CAAW,EAAA,CAAG,EAAE,CAAC,CAAA;AAAA,YAAA,EAC7G,EAAA,CAAG,cAAc,CAAA,8DAAA,EAAiEA,WAAAA,CAAW,GAAG,WAAW,CAAC,WAAW,EAAE;AAAA;AAAA;AAAA,mEAAA,EAGlEA,WAAAA,CAAW,EAAA,CAAG,EAAE,CAAC,CAAA;AAAA,kEAAA,EAClBA,WAAAA,CAAW,GAAG,EAAE,CAAC,qBAAqBA,WAAAA,CAAW,EAAA,CAAG,KAAK,CAAC,CAAA;AAAA;AAAA;AAAA,MAAA;AAAA,KAIxH,CACC,KAAK,EAAE,CAAA;AACV,IAAA,MAAMD,QAAAA,GAAU,OAAO,CAAA,KAAa;AAClC,MAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAqB,gBAAgB,CAAA;AAC5D,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,MAAM,EAAA,GAAK,OAAA,CAAQ,OAAA,CAAQ,MAAA,IAAU,EAAA;AACrC,QAAA,MAAMQ,cAAAA,CAAc,IAAI,EAAE,CAAA;AAC1B,QAAA,EAAA,CAAG,cAAc,KAAA,EAAM;AACvB,QAAA,EAAA,CAAG,WAAA,CAAY,mBAAA,CAAoB,OAAA,EAASR,QAAO,CAAA;AACnD,QAAA;AAAA,MACF;AACA,MAAA,MAAM,MAAA,GAAS,MAAA,CAAO,OAAA,CAAqB,eAAe,CAAA;AAC1D,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAQ,KAAA,IAAS,EAAA;AACzC,QAAA,MAAM,WAAA,GAAc,MAAA,CAAO,OAAA,CAAQ,QAAA,IAAY,EAAA;AAC/C,QAAA,EAAA,CAAG,cAAc,KAAA,EAAM;AACvB,QAAA,EAAA,CAAG,WAAA,CAAY,mBAAA,CAAoB,OAAA,EAASA,QAAO,CAAA;AACnD,QAAA,mBAAA,CAAoB,EAAA,EAAI,UAAU,WAAW,CAAA;AAAA,MAC/C;AAAA,IACF,CAAA;AACA,IAAA,EAAA,CAAG,WAAA,CAAY,gBAAA,CAAiB,OAAA,EAASA,QAAO,CAAA;AAAA,EAClD,SAAS,GAAA,EAAK;AACZ,IAAA,EAAA,CAAG,WAAA,CAAY,SAAA,GAAY,CAAA,+CAAA,EAAwCC,WAAAA,CAAW,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,MAAA,CAAO,GAAG,CAAC,CAAC,CAAA,KAAA,CAAA;AAAA,EACjI;AACF;AAEA,eAAsBO,cAAAA,CAAc,IAAc,EAAA,EAA2B;AAC3E,EAAA,IAAI;AACF,IAAA,SAAA,CAAU,IAAI,oBAAK,CAAA;AACnB,IAAA,MAAM,GAAA,GAAM,MAAU,aAAA,CAAc,EAAE,CAAA;AACtC,IAAA,MAAA,CAAO,GAAG,CAAA;AACV,IAAA,SAAA,EAAU;AACV,IAAA,SAAA,CAAU,EAAA,EAAI,CAAA,2BAAA,EAAU,GAAA,CAAI,EAAE,IAAI,IAAI,CAAA;AAAA,EACxC,SAAS,GAAA,EAAK;AACZ,IAAA,SAAA;AAAA,MACE,EAAA;AAAA,MACA,iCAAa,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,OAAO,GAAG,CAAA,CAAA;AAAA,MAC5D;AAAA,KACF;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,IAAA,EAAoB;AAC7C,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,cAAA,CAAe,yBAAyB,CAAA;AACjE,EAAA,IAAI,OAAA,UAAiB,WAAA,GAAc,IAAA;AACrC;AAEO,SAAS,cAAc,EAAA,EAAoB;AAChD,EAAA,EAAA,CAAG,WAAW,KAAA,GAAQ,EAAA;AACtB,EAAA,EAAA,CAAG,cAAc,KAAA,GAAQ,EAAA;AACzB,EAAA,EAAA,CAAG,SAAS,WAAA,GAAc,EAAA;AAC1B,EAAA,EAAA,CAAG,SAAA,CAAU,QAAQ,IAAA,GAAO,QAAA;AAC5B,EAAA,OAAO,EAAA,CAAG,UAAU,OAAA,CAAQ,QAAA;AAC5B,EAAA,iBAAA,CAAkB,0DAAa,CAAA;AAC/B,EAAA,IAAI,OAAO,EAAA,CAAG,SAAA,CAAU,cAAc,UAAA,EAAY,EAAA,CAAG,UAAU,SAAA,EAAU;AAAA,OACpE,EAAA,CAAG,SAAA,CAAU,YAAA,CAAa,MAAA,EAAQ,EAAE,CAAA;AAC3C;AAEO,SAAS,mBAAA,CACd,EAAA,EACA,QAAA,EACA,WAAA,EACM;AACN,EAAA,EAAA,CAAG,UAAA,CAAW,KAAA,GAAQ,CAAA,EAAG,QAAQ,CAAA,KAAA,CAAA;AACjC,EAAA,EAAA,CAAG,aAAA,CAAc,KAAA,GAAQ,CAAA,EAAG,WAAW,CAAA,eAAA,CAAA;AACvC,EAAA,EAAA,CAAG,SAAS,WAAA,GAAc,EAAA;AAC1B,EAAA,EAAA,CAAG,SAAA,CAAU,QAAQ,IAAA,GAAO,WAAA;AAC5B,EAAA,EAAA,CAAG,SAAA,CAAU,QAAQ,QAAA,GAAW,QAAA;AAChC,EAAA,iBAAA,CAAkB,CAAA,CAAA,EAAI,QAAQ,CAAA,cAAA,CAAM,CAAA;AACpC,EAAA,IAAI,OAAO,EAAA,CAAG,SAAA,CAAU,cAAc,UAAA,EAAY,EAAA,CAAG,UAAU,SAAA,EAAU;AAAA,OACpE,EAAA,CAAG,SAAA,CAAU,YAAA,CAAa,MAAA,EAAQ,EAAE,CAAA;AAC3C;AAEA,eAAsB,UAAU,EAAA,EAA6B;AAC3D,EAAA,MAAM,EAAA,GAAK,EAAA,CAAG,UAAA,CAAW,KAAA,CAAM,IAAA,EAAK;AACpC,EAAA,MAAM,KAAA,GAAQ,EAAA,CAAG,aAAA,CAAc,KAAA,CAAM,MAAK,IAAK,EAAA;AAC/C,EAAA,IAAI,CAAC,uBAAA,CAAwB,IAAA,CAAK,EAAE,CAAA,EAAG;AACrC,IAAA,EAAA,CAAG,SAAS,WAAA,GAAc,sFAAA;AAC1B,IAAA;AAAA,EACF;AACA,EAAA,MAAM,IAAA,GAAO,EAAA,CAAG,SAAA,CAAU,OAAA,CAAQ,IAAA,IAAQ,QAAA;AAC1C,EAAA,IAAI,SAAS,YAAA,EAAc;AACzB,IAAA,MAAM,eAAA,CAAgB,EAAA,EAAI,EAAA,EAAI,KAAK,CAAA;AACnC,IAAA;AAAA,EACF;AACA,EAAA,IAAI,SAAS,WAAA,EAAa;AACxB,IAAA,MAAM,QAAA,GAAW,EAAA,CAAG,SAAA,CAAU,OAAA,CAAQ,QAAA,IAAY,EAAA;AAClD,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,GAAM,MAAU,kBAAA,CAAmB,QAAA,EAAU,IAAI,KAAK,CAAA;AAC5D,MAAA,MAAA,CAAO,GAAG,CAAA;AACV,MAAA,SAAA,EAAU;AACV,MAAA,EAAA,CAAG,UAAU,KAAA,EAAM;AACnB,MAAA,OAAO,EAAA,CAAG,UAAU,OAAA,CAAQ,QAAA;AAC5B,MAAA,SAAA,CAAU,EAAA,EAAI,CAAA,2BAAA,EAAU,GAAA,CAAI,EAAE,IAAI,IAAI,CAAA;AAAA,IACxC,SAAS,GAAA,EAAK;AACZ,MAAA,EAAA,CAAG,SAAS,WAAA,GACV,GAAA,YAAe,QAAQ,GAAA,CAAI,OAAA,GAAU,OAAO,GAAG,CAAA;AAAA,IACnD;AACA,IAAA;AAAA,EACF;AACA,EAAA,IAAI;AACF,IAAA,MAAM,GAAA,GAAM,MAAU,eAAA,CAAgB,EAAA,EAAI,KAAK,CAAA;AAC/C,IAAA,MAAA,CAAO,GAAG,CAAA;AACV,IAAA,SAAA,EAAU;AACV,IAAA,EAAA,CAAG,UAAU,KAAA,EAAM;AACnB,IAAA,SAAA,CAAU,EAAA,EAAI,CAAA,uCAAA,EAAY,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA;AAAA,EACtC,SAAS,GAAA,EAAK;AACZ,IAAA,EAAA,CAAG,SAAS,WAAA,GAAc,GAAA,YAAe,QAAQ,GAAA,CAAI,OAAA,GAAU,OAAO,GAAG,CAAA;AAAA,EAC3E;AACF;AAEA,eAAe,eAAA,CACb,EAAA,EACA,EAAA,EACA,KAAA,EACe;AACf,EAAA,MAAM,UAAU,MAAA,EAAO;AACvB,EAAA,IAAI,CAAC,OAAA,EAAS;AACd,EAAA,IAAI;AACF,IAAA,MAAM,gBAAgB,EAAE,GAAG,SAAS,EAAA,EAAI,KAAA,EAAO,SAAS,EAAA,EAAG;AAC3D,IAAA,MAAU,eAAA,CAAgB,EAAA,EAAI,KAAA,IAAS,EAAE,CAAA;AACzC,IAAA,MAAM,KAAA,GAAQ,MAAU,aAAA,CAAc,aAAa,CAAA;AACnD,IAAA,MAAA,CAAO,KAAK,CAAA;AACZ,IAAA,mBAAA,EAAoB;AACpB,IAAA,SAAA,EAAU;AACV,IAAA,EAAA,CAAG,SAAA,CAAU,gBAAgB,WAAW,CAAA;AACxC,IAAA,EAAA,CAAG,UAAU,KAAA,EAAM;AACnB,IAAA,SAAA,CAAU,EAAA,EAAI,CAAA,iCAAA,EAAgB,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA;AAAA,EAC1C,SAAS,GAAA,EAAK;AACZ,IAAA,EAAA,CAAG,QAAA,CAAS,cACV,6BAAA,IAAa,GAAA,YAAe,QAAQ,GAAA,CAAI,OAAA,GAAU,OAAO,GAAG,CAAA,CAAA;AAAA,EAChE;AACF;AAEA,eAAsB,YAAY,EAAA,EAA6B;AAC7D,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,IAAI,SAAQ,EAAG;AACb,IAAA,eAAA,CAAgB,EAAE,CAAA;AAClB,IAAA;AAAA,EACF;AACA,EAAA,IAAI,CAAC,IAAI,KAAA,IAAS,GAAA,CAAI,MAAM,IAAA,EAAK,CAAE,WAAW,CAAA,EAAG;AAC/C,IAAA,UAAA,CAAW,EAAE,KAAA,EAAO,GAAA,CAAI,EAAA,EAAI,CAAA;AAC5B,IAAA,SAAA,CAAU,EAAA,EAAI,CAAA,gDAAA,EAAgB,GAAA,CAAI,EAAE,0CAAY,MAAM,CAAA;AAAA,EACxD;AACA,EAAA,MAAM,UAAU,MAAA,EAAO;AACvB,EAAA,IAAI,CAAC,OAAA,EAAS;AACd,EAAA,IAAI;AACF,IAAA,SAAA,CAAU,IAAI,2BAAO,CAAA;AACrB,IAAA,MAAM,KAAA,GAAQ,MAAU,aAAA,CAAc,OAAO,CAAA;AAC7C,IAAA,MAAA,CAAO,KAAK,CAAA;AACZ,IAAA,SAAA,EAAU;AACV,IAAA,SAAA,CAAU,EAAA,EAAI,wCAAQ,IAAI,IAAA,IAAO,kBAAA,CAAmB,OAAO,CAAC,CAAA,CAAA,CAAA,EAAK,IAAI,CAAA;AAAA,EACvE,SAAS,GAAA,EAAK;AACZ,IAAA,SAAA;AAAA,MACE,EAAA;AAAA,MACA,iCAAa,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,OAAO,GAAG,CAAA,CAAA;AAAA,MAC5D;AAAA,KACF;AAAA,EACF;AACF;AAEA,SAAS,gBAAgB,EAAA,EAAoB;AAC3C,EAAA,EAAA,CAAG,WAAW,KAAA,GAAQ,EAAA;AACtB,EAAA,EAAA,CAAG,cAAc,KAAA,GAAQ,EAAA;AACzB,EAAA,EAAA,CAAG,SAAS,WAAA,GACV,0IAAA;AACF,EAAA,EAAA,CAAG,SAAA,CAAU,QAAQ,IAAA,GAAO,YAAA;AAC5B,EAAA,IAAI,OAAO,EAAA,CAAG,SAAA,CAAU,cAAc,UAAA,EAAY,EAAA,CAAG,UAAU,SAAA,EAAU;AAAA,OACpE,EAAA,CAAG,SAAA,CAAU,YAAA,CAAa,MAAA,EAAQ,EAAE,CAAA;AAC3C;AAEA,eAAsB,cAAc,EAAA,EAA6B;AAC/D,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,IAAI,CAAC,OAAA,CAAQ,CAAA,CAAA,EAAI,GAAA,CAAI,EAAE,CAAA,sHAAA,CAA8B,CAAA;AACnD,IAAA;AACF,EAAA,IAAI;AACF,IAAA,MAAU,eAAA,CAAgB,IAAI,EAAE,CAAA;AAChC,IAAA,MAAA,CAAO,IAAI,CAAA;AACX,IAAA,SAAA,CAAU,EAAA,EAAI,sBAAO,IAAI,CAAA;AAAA,EAC3B,SAAS,GAAA,EAAK;AACZ,IAAA,SAAA;AAAA,MACE,EAAA;AAAA,MACA,iCAAa,GAAA,YAAe,KAAA,GAAQ,GAAA,CAAI,OAAA,GAAU,OAAO,GAAG,CAAA,CAAA;AAAA,MAC5D;AAAA,KACF;AAAA,EACF;AACF;;;ACnOA,IAAI,QAAA,GAAqC,IAAA;AACzC,IAAI,OAAA,GAAmC,IAAA;AACvC,IAAIF,OAAAA,GAAkC,IAAA;AACtC,IAAI,WAA6B,EAAC;AAClC,IAAI,iBAA0B,EAAC;AAC/B,IAAI,WAAA,GAAc,CAAA;AAClB,SAASL,YAAW,CAAA,EAAmB;AACrC,EAAA,OAAO,CAAA,CACJ,OAAA,CAAQ,IAAA,EAAM,OAAO,EACrB,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,QAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,OAAA,CAAQ,MAAM,QAAQ,CAAA;AAC3B;AAEO,SAAS,iBAAiB,IAAA,EAA8B;AAC7D,EAAA,QAAA,GAAW,IAAA;AACb;AAEO,SAAS,WAAA,GAAoB;AAClC,EAAA,QAAA,GAAW,QAAA,CAAS,cAAA;AAAA,IAClB;AAAA,GACF;AACA,EAAA,OAAA,GAAU,QAAA,CAAS,cAAA;AAAA,IACjB;AAAA,GACF;AACA,EAAAK,UAAS,QAAA,CAAS,cAAA;AAAA,IAChB;AAAA,GACF;AACA,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,OAAA,IAAW,CAACA,OAAAA,EAAQ;AACtC,EAAA,OAAA,CAAQ,gBAAA,CAAiB,SAAS,UAAU,CAAA;AAC5C,EAAA,OAAA,CAAQ,gBAAA,CAAiB,WAAWG,UAAS,CAAA;AAC7C,EAAAH,OAAAA,CAAO,gBAAA,CAAiB,OAAA,EAAS,WAAW,CAAA;AAC5C,EAAA,QAAA,CAAS,gBAAA,CAAiB,SAAS,MAAM;AACvC,IAAA,IAAI,OAAA,UAAiB,KAAA,GAAQ,EAAA;AAC7B,IAAA,WAAA,GAAc,CAAA;AAAA,EAChB,CAAC,CAAA;AACH;AAEO,SAAS,WAAA,GAAoB;AAClC,EAAA,IAAI,CAAC,QAAA,EAAU;AACf,EAAA,IAAI,OAAO,QAAA,CAAS,SAAA,KAAc,UAAA,WAAqB,SAAA,EAAU;AAAA,OAC5D,QAAA,CAAS,YAAA,CAAa,MAAA,EAAQ,EAAE,CAAA;AACrC,EAAA,WAAA,GAAc,CAAA;AACd,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAA,CAAQ,KAAA,GAAQ,EAAA;AAChB,IAAA,UAAA,CAAW,MAAM,OAAA,EAAS,KAAA,EAAM,EAAG,CAAC,CAAA;AAAA,EACtC;AACA,EAAA,UAAA,EAAW;AACb;AAEA,SAAS,cAAc,KAAA,EAAwB;AAC7C,EAAA,MAAM,CAAA,GAAI,KAAA,CAAM,IAAA,EAAK,CAAE,WAAA,EAAY;AACnC,EAAA,MAAM,UAAmB,EAAC;AAC1B,EAAA,KAAA,MAAW,KAAK,QAAA,EAAU;AACxB,IAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,MACX,IAAA,EAAM,SAAA;AAAA,MACN,IAAI,CAAA,CAAE,EAAA;AAAA,MACN,OAAO,CAAA,CAAE,KAAA;AAAA,MACT,MAAM,CAAA,CAAE,IAAA;AAAA,MACR,KAAK,CAAA,CAAE;AAAA,KACR,CAAA;AAAA,EACH;AACA,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,GAAA,EAAK;AACP,IAAA,KAAA,MAAW,EAAA,IAAM,IAAI,QAAA,EAAU;AAC7B,MAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,QACX,IAAA,EAAM,SAAA;AAAA,QACN,EAAA,EAAI,CAAA,GAAA,EAAM,EAAA,CAAG,EAAE,CAAA,CAAA;AAAA,QACf,KAAA,EAAO,qBAAqB,EAAE,CAAA;AAAA,QAC9B,MAAM,EAAA,CAAG,IAAA;AAAA,QACT,OAAO,EAAA,CAAG;AAAA,OACX,CAAA;AAAA,IACH;AAAA,EACF;AACA,EAAA,IAAI,CAAC,GAAG,OAAO,OAAA;AACf,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,CAAC,CAAA,KAAM;AAC3B,IAAA,MAAM,GAAA,GACJ,CAAA,CAAE,IAAA,KAAS,SAAA,GACP,CAAA,EAAG,EAAE,KAAK,CAAA,CAAA,EAAI,CAAA,CAAE,IAAI,CAAA,CAAA,EAAI,CAAA,CAAE,KAAK,CAAA,CAAA,CAAG,WAAA,EAAY,GAC9C,CAAA,EAAG,CAAA,CAAE,KAAK,IAAI,CAAA,CAAE,IAAA,IAAQ,EAAE,CAAA,CAAA,CAAG,WAAA,EAAY;AAC/C,IAAA,OAAO,GAAA,CAAI,SAAS,CAAC,CAAA;AAAA,EACvB,CAAC,CAAA;AACH;AAEA,SAAS,UAAA,GAAmB;AAC1B,EAAA,IAAI,CAACA,OAAAA,IAAU,CAAC,OAAA,EAAS;AACzB,EAAA,cAAA,GAAiB,aAAA,CAAc,QAAQ,KAAK,CAAA;AAC5C,EAAA,IAAI,eAAe,cAAA,CAAe,MAAA;AAChC,IAAA,WAAA,GAAc,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,cAAA,CAAe,SAAS,CAAC,CAAA;AACrD,EAAA,IAAI,cAAA,CAAe,WAAW,CAAA,EAAG;AAC/B,IAAAA,QAAO,SAAA,GAAY,iEAAA;AACnB,IAAA;AAAA,EACF;AACA,EAAAA,QAAO,SAAA,GAAY,cAAA,CAChB,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AACb,IAAA,MAAM,WAAW,CAAA,KAAM,WAAA;AACvB,IAAA,IAAI,CAAA,CAAE,SAAS,SAAA,EAAW;AACxB,MAAA,OAAO,CAAA,+BAAA,EAAkC,QAAA,GAAW,WAAA,GAAc,EAAE,eAAe,CAAC,CAAA;AAAA;AAAA,2CAAA,EAE/CL,WAAAA,CAAW,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,QAAA,EACtD,CAAA,CAAE,OAAO,CAAA,kCAAA,EAAqCA,WAAAA,CAAW,EAAE,IAAI,CAAC,YAAY,EAAE;AAAA,WAAA,CAAA;AAAA,IAElF;AACA,IAAA,OAAO,CAAA,+BAAA,EAAkC,QAAA,GAAW,WAAA,GAAc,EAAE,eAAe,CAAC,CAAA;AAAA;AAAA,yCAAA,EAE/CA,WAAAA,CAAW,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,wCAAA,EACpBA,WAAAA,CAAW,EAAE,IAAI,CAAC,SAAMA,WAAAA,CAAW,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,SAAA,CAAA;AAAA,EAEjF,CAAC,CAAA,CACA,IAAA,CAAK,EAAE,CAAA;AACZ;AAEA,SAAS,SAAS,KAAA,EAAoB;AACpC,EAAA,IAAI,KAAA,CAAM,SAAS,SAAA,EAAW;AAC5B,IAAA,KAAA,CAAM,GAAA,EAAI;AAAA,EACZ,CAAA,MAAO;AACL,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAW,KAAA,CAAM,OAAO,CAAA;AAAA,EAC1D;AACA,EAAA,QAAA,EAAU,KAAA,EAAM;AAClB;AAEA,SAASQ,WAAU,CAAA,EAAwB;AACzC,EAAA,IAAI,CAAA,CAAE,QAAQ,WAAA,EAAa;AACzB,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,WAAA,GAAc,KAAK,GAAA,CAAI,WAAA,GAAc,CAAA,EAAG,cAAA,CAAe,SAAS,CAAC,CAAA;AACjE,IAAA,UAAA,EAAW;AAAA,EACb,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,SAAA,EAAW;AAC9B,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,WAAA,GAAc,IAAA,CAAK,GAAA,CAAI,WAAA,GAAc,CAAA,EAAG,CAAC,CAAA;AACzC,IAAA,UAAA,EAAW;AAAA,EACb,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,OAAA,EAAS;AAC5B,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAM,KAAA,GAAQ,eAAe,WAAW,CAAA;AACxC,IAAA,IAAI,KAAA,WAAgB,KAAK,CAAA;AAAA,EAC3B;AACF;AAEA,SAAS,YAAY,CAAA,EAAgB;AACnC,EAAA,MAAM,IAAA,GAAQ,CAAA,CAAE,MAAA,CAAuB,OAAA,CAAqB,YAAY,CAAA;AACxE,EAAA,IAAI,CAAC,IAAA,EAAM;AACX,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AACnC,EAAA,MAAM,KAAA,GAAQ,eAAe,GAAG,CAAA;AAChC,EAAA,IAAI,KAAA,WAAgB,KAAK,CAAA;AAC3B;;;AC1JA,IAAM,SAAA,GAAyC;AAAA,EAC7C,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ,QAAA;AAAA,EACR,QAAA,EAAU,QAAA;AAAA,EACV,GAAA,EAAK,QAAA;AAAA,EACL,MAAA,EAAQ,WAAA;AAAA,EACR,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO,WAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS,QAAA;AAAA,EACT,KAAA,EAAO,QAAA;AAAA,EACP,UAAA,EAAY,QAAA;AAAA,EACZ,OAAA,EAAS,WAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,WAAA;AAAA,EACP,KAAA,EAAO,QAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAA;AAEA,IAAIC,SAAAA,GAAqC,IAAA;AACzC,IAAIJ,OAAAA,GAAkC,IAAA;AAEtC,SAASL,YAAW,CAAA,EAAmB;AACrC,EAAA,OAAO,CAAA,CACJ,OAAA,CAAQ,IAAA,EAAM,OAAO,EACrB,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,QAAQ,IAAA,EAAM,MAAM,CAAA,CACpB,OAAA,CAAQ,MAAM,QAAQ,CAAA;AAC3B;AAEA,SAAS,cAAc,EAAA,EAAoB;AACzC,EAAA,MAAM,OAAO,IAAA,CAAK,KAAA,CAAA,CAAO,KAAK,GAAA,EAAI,GAAI,MAAM,GAAI,CAAA;AAChD,EAAA,IAAI,IAAA,GAAO,GAAG,OAAO,cAAA;AACrB,EAAA,IAAI,IAAA,GAAO,EAAA,EAAI,OAAO,CAAA,EAAG,IAAI,CAAA,aAAA,CAAA;AAC7B,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,EAAE,CAAA;AACjC,EAAA,IAAI,IAAA,GAAO,EAAA,EAAI,OAAO,CAAA,EAAG,IAAI,CAAA,aAAA,CAAA;AAC7B,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,EAAE,CAAA;AAClC,EAAA,OAAO,GAAG,KAAK,CAAA,mBAAA,CAAA;AACjB;AAEO,SAAS,gBAAA,GAAyB;AACvC,EAAAS,YAAW,QAAA,CAAS,cAAA;AAAA,IAClB;AAAA,GACF;AACA,EAAAJ,UAAS,QAAA,CAAS,cAAA;AAAA,IAChB;AAAA,GACF;AACA,EAAA,IAAI,CAACI,SAAAA,IAAY,CAACJ,OAAAA,EAAQ;AAC1B,EAAAA,OAAAA,CAAO,gBAAA,CAAiB,OAAA,EAASK,YAAW,CAAA;AAC5C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAID,SAAAA,EAAU,IAAA,EAAME,WAAAA,EAAW;AAAA,EACjC,CAAC,CAAA;AACH;AAEO,SAAS,gBAAA,GAAyB;AACvC,EAAA,IAAI,CAACF,SAAAA,EAAU;AACf,EAAAE,WAAAA,EAAW;AACX,EAAA,IAAI,OAAOF,SAAAA,CAAS,SAAA,KAAc,UAAA,EAAYA,UAAS,SAAA,EAAU;AAAA,OAC5DA,SAAAA,CAAS,YAAA,CAAa,MAAA,EAAQ,EAAE,CAAA;AACvC;AAEA,SAASE,WAAAA,GAAmB;AAC1B,EAAA,IAAI,CAACN,OAAAA,EAAQ;AACb,EAAA,MAAM,EAAE,IAAA,EAAM,MAAA,EAAO,GAAI,UAAA,EAAW;AACpC,EAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,IAAK,MAAA,CAAO,WAAW,CAAA,EAAG;AAC5C,IAAAA,QAAO,SAAA,GACL,gGAAA;AACF,IAAA;AAAA,EACF;AACA,EAAA,MAAM,eAAe,CAAC,GAAG,IAAI,CAAA,CAAE,KAAA,GAAQ,OAAA,EAAQ;AAC/C,EAAA,MAAM,QAAkB,EAAC;AACzB,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,MAAA,CAAO,MAAA,EAAQ,KAAK,CAAA,EAAG;AACzC,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,IAAI,CAAC,CAAA;AAC1C,IAAA,KAAA,CAAM,KAAK,WAAA,CAAY,KAAA,EAAO,QAAA,EAAU,CAAA,GAAI,CAAC,CAAC,CAAA;AAAA,EAChD;AACA,EAAA,KAAA,CAAM,KAAK,mEAA+C,CAAA;AAC1D,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,YAAA,CAAa,MAAA,EAAQ,KAAK,CAAA,EAAG;AAC/C,IAAA,MAAM,KAAA,GAAQ,aAAa,CAAC,CAAA;AAC5B,IAAA,KAAA,CAAM,KAAK,WAAA,CAAY,KAAA,EAAO,MAAA,EAAQ,CAAA,GAAI,CAAC,CAAC,CAAA;AAAA,EAC9C;AACA,EAAAA,OAAAA,CAAO,SAAA,GAAY,KAAA,CAAM,IAAA,CAAK,EAAE,CAAA;AAClC;AAEA,SAAS,WAAA,CACP,KAAA,EACA,IAAA,EACA,SAAA,EACQ;AACR,EAAA,MAAM,IAAA,GAAO,SAAA,CAAU,KAAA,CAAM,IAAI,CAAA,IAAK,MAAA;AACtC,EAAA,OAAO,CAAA,mDAAA,EAAsD,IAAI,CAAA,aAAA,EAAgB,IAAI,iBAAiB,SAAS,CAAA;AAAA,yDAAA,EACtD,IAAI,CAAA;AAAA,uCAAA,EACtBL,WAAAA,CAAW,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,sCAAA,EACxBA,WAAAA,CAAW,aAAA,CAAc,KAAA,CAAM,SAAS,CAAC,CAAC,CAAA;AAAA,OAAA,CAAA;AAElF;AAEA,SAASU,aAAY,CAAA,EAAgB;AACnC,EAAA,MAAM,IAAA,GAAQ,CAAA,CAAE,MAAA,CAAuB,OAAA,CAAqB,aAAa,CAAA;AACzE,EAAA,IAAI,CAAC,IAAA,EAAM;AACX,EAAA,MAAM,IAAA,GAAO,KAAK,OAAA,CAAQ,IAAA;AAC1B,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AACvC,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,SAAS,CAAA,EAAG;AAC3C,EAAA,IAAI,IAAA,KAAS,MAAA,EAAQ,QAAA,CAAS,KAAK,CAAA;AAAA,mBAClB,KAAK,CAAA;AACtB,EAAA,IAAID,SAAAA,EAAU,IAAA,EAAME,WAAAA,EAAW;AACjC;;;ACjHO,SAAS,OAAA,GAA2B;AACzC,EAAA,MAAM,GAAA,GAAM,QAAA,CAAS,cAAA,CAAe,YAAY,CAAA;AAChD,EAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,EAAA,MAAM,CAAA,GAAI,CAAwB,EAAA,KAChC,QAAA,CAAS,eAAe,EAAE,CAAA;AAE5B,EAAA,MAAM,UAAA,GAAa,EAAoB,cAAc,CAAA;AACrD,EAAA,MAAM,SAAA,GAAY,EAAe,mBAAmB,CAAA;AACpD,EAAA,MAAM,MAAA,GAAS,EAAe,eAAe,CAAA;AAC7C,EAAA,MAAM,OAAA,GAAU,EAAqB,aAAa,CAAA;AAClD,EAAA,MAAM,SAAA,GAAY,EAAqB,eAAe,CAAA;AACtD,EAAA,MAAM,MAAA,GAAS,EAAqB,YAAY,CAAA;AAChD,EAAA,MAAM,OAAA,GAAU,EAAqB,aAAa,CAAA;AAClD,EAAA,MAAM,OAAA,GAAU,EAAqB,aAAa,CAAA;AAClD,EAAA,MAAM,UAAA,GAAa,EAAqB,gBAAgB,CAAA;AACxD,EAAA,MAAM,UAAA,GAAa,EAAoB,cAAc,CAAA;AACrD,EAAA,MAAM,UAAA,GAAa,EAAe,oBAAoB,CAAA;AACtD,EAAA,MAAM,SAAS,QAAA,CAAS,cAAA;AAAA,IACtB;AAAA,GACF;AACA,EAAA,MAAM,WAAA,GAAc,EAAe,qBAAqB,CAAA;AACxD,EAAA,MAAM,SAAA,GAAY,GAAA,CAAI,aAAA,CAA2B,eAAe,CAAA;AAChE,EAAA,MAAM,SAAA,GAAY,EAAe,sBAAsB,CAAA;AACvD,EAAA,MAAM,cAAA,GAAiB,EAAe,wBAAwB,CAAA;AAC9D,EAAA,MAAM,aAAA,GAAgB,EAAe,uBAAuB,CAAA;AAC5D,EAAA,MAAM,UAAA,GAAa,EAAqB,iBAAiB,CAAA;AACzD,EAAA,MAAM,aAAA,GAAgB,EAAqB,uBAAuB,CAAA;AAClE,EAAA,MAAM,WAAA,GAAc,EAAe,qBAAqB,CAAA;AACxD,EAAA,MAAM,SAAA,GAAY,EAAqB,mBAAmB,CAAA;AAC1D,EAAA,MAAM,UAAA,GAAa,EAAoB,eAAe,CAAA;AACtD,EAAA,MAAM,aAAA,GAAgB,EAAoB,kBAAkB,CAAA;AAC5D,EAAA,MAAM,YAAA,GAAe,EAAqB,mBAAmB,CAAA;AAC7D,EAAA,MAAM,QAAA,GAAW,EAAe,kBAAkB,CAAA;AAClD,EAAA,MAAM,gBAAA,GAAmB,EAAoB,qBAAqB,CAAA;AAClE,EAAA,MAAM,iBAAA,GAAoB,EAAoB,sBAAsB,CAAA;AACpE,EAAA,MAAM,cAAA,GAAiB,EAAqB,qBAAqB,CAAA;AACjE,EAAA,MAAM,cAAA,GAAiB,EAAoB,mBAAmB,CAAA;AAC9D,EAAA,MAAM,OAAA,GAAU,EAAqB,aAAa,CAAA;AAClD,EAAA,MAAM,UAAA,GAAa,EAAqB,oBAAoB,CAAA;AAC5D,EAAA,MAAM,OAAA,GAAU,EAAqB,aAAa,CAAA;AAClD,EAAA,MAAM,OAAA,GAAU,EAAqB,aAAa,CAAA;AAClD,EAAA,MAAM,aAAA,GAAgB,EAAqB,oBAAoB,CAAA;AAE/D,EAAA,IACE,CAAC,UAAA,IACD,CAAC,SAAA,IACD,CAAC,MAAA,IACD,CAAC,OAAA,IACD,CAAC,SAAA,IACD,CAAC,MAAA,IACD,CAAC,OAAA,IACD,CAAC,OAAA,IACD,CAAC,UAAA,IACD,CAAC,UAAA,IACD,CAAC,cACD,CAAC,MAAA,IACD,CAAC,WAAA,IACD,CAAC,SAAA,IACD,CAAC,SAAA,IACD,CAAC,cAAA,IACD,CAAC,aAAA,IACD,CAAC,UAAA,IACD,CAAC,aAAA,IACD,CAAC,eACD,CAAC,SAAA,IACD,CAAC,UAAA,IACD,CAAC,aAAA,IACD,CAAC,YAAA,IACD,CAAC,QAAA,IACD,CAAC,gBAAA,IACD,CAAC,iBAAA,IACD,CAAC,cAAA,IACD,CAAC,kBACD,CAAC,OAAA,IACD,CAAC,UAAA,IACD,CAAC,OAAA,IACD,CAAC,OAAA,IACD,CAAC,aAAA,EACD;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO;AAAA,IACL,GAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA;AAAA,IACA,gBAAA;AAAA,IACA,iBAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF;AACF;;;AC7GO,SAAS,mBAAA,CACd,QACA,EAAA,EACM;AACN,EAAA,MAAA,CACG,gBAAA,CAAiB,2BAA2B,CAAA,CAC5C,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA;AAC5B,EAAA,MAAM,QAAA,GAAW,GAAG,QAAA,IAAY,EAAA;AAChC,EAAA,MAAM,KAAK,QAAA,CAAS,eAAA;AAAA,IAClB,4BAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,EAAA,CAAG,YAAA,CAAa,2BAA2B,EAAE,CAAA;AAC7C,EAAA,EAAA,CAAG,aAAa,GAAA,EAAK,MAAA,CAAO,EAAA,CAAG,CAAA,GAAI,CAAC,CAAC,CAAA;AACrC,EAAA,EAAA,CAAG,aAAa,GAAA,EAAK,MAAA,CAAO,EAAA,CAAG,CAAA,GAAI,QAAQ,CAAC,CAAA;AAC5C,EAAA,MAAM,KAAA,GAAQ,KAAK,GAAA,CAAI,GAAA,EAAA,CAAM,GAAG,OAAA,EAAS,MAAA,IAAU,CAAA,IAAK,QAAA,GAAW,GAAG,CAAA;AACtE,EAAA,EAAA,CAAG,YAAA,CAAa,OAAA,EAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AACtC,EAAA,EAAA,CAAG,YAAA,CAAa,QAAA,EAAU,MAAA,CAAO,QAAA,GAAW,GAAG,CAAC,CAAA;AAChD,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,EAAA,KAAA,CAAM,IAAA,GAAO,MAAA;AACb,EAAA,KAAA,CAAM,KAAA,GAAQ,GAAG,OAAA,IAAW,EAAA;AAC5B,EAAA,MAAA,CAAO,MAAA,CAAO,MAAM,KAAA,EAAO;AAAA,IACzB,KAAA,EAAO,MAAA;AAAA,IACP,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW,YAAA;AAAA,IACX,MAAA,EAAQ,mBAAA;AAAA,IACR,YAAA,EAAc,KAAA;AAAA,IACd,UAAA,EAAY,2BAAA;AAAA,IACZ,OAAA,EAAS,OAAA;AAAA,IACT,MAAM,CAAA,EAAG,EAAA,CAAG,UAAA,IAAc,GAAG,IAAI,QAAQ,CAAA,qCAAA,CAAA;AAAA,IACzC,KAAA,EAAO,GAAG,KAAA,IAAS,SAAA;AAAA,IACnB,OAAA,EAAS,MAAA;AAAA,IACT,SAAA,EAAW;AAAA,GACZ,CAAA;AACD,EAAA,EAAA,CAAG,YAAY,KAAK,CAAA;AACpB,EAAA,MAAA,CAAO,YAAY,EAAE,CAAA;AACrB,EAAA,qBAAA,CAAsB,MAAM;AAC1B,IAAA,KAAA,CAAM,KAAA,EAAM;AACZ,IAAA,KAAA,CAAM,MAAA,EAAO;AAAA,EACf,CAAC,CAAA;AACD,EAAA,IAAI,OAAA,GAAU,KAAA;AACd,EAAA,MAAM,SAAS,MAAY;AACzB,IAAA,IAAI,OAAA,EAAS;AACb,IAAA,OAAA,GAAU,IAAA;AACV,IAAA,MAAM,aAAa,KAAA,CAAM,KAAA;AACzB,IAAA,EAAA,CAAG,MAAA,EAAO;AACV,IAAA,IAAI,UAAA,KAAe,GAAG,OAAA,EAAS;AAC7B,MAAA,iBAAA,CAAkB,EAAA,CAAG,EAAA,EAAI,EAAE,OAAA,EAAS,YAAY,CAAA;AAAA,IAClD;AAAA,EACF,CAAA;AACA,EAAA,MAAM,SAAS,MAAY;AACzB,IAAA,IAAI,OAAA,EAAS;AACb,IAAA,OAAA,GAAU,IAAA;AACV,IAAA,EAAA,CAAG,MAAA,EAAO;AAAA,EACZ,CAAA;AACA,EAAA,IAAIC,oBAAAA,GAAsB,KAAA;AAC1B,EAAA,KAAA,CAAM,gBAAA,CAAiB,oBAAoB,MAAM;AAC/C,IAAAA,oBAAAA,GAAsB,IAAA;AAAA,EACxB,CAAC,CAAA;AACD,EAAA,KAAA,CAAM,gBAAA,CAAiB,kBAAkB,MAAM;AAC7C,IAAAA,oBAAAA,GAAsB,KAAA;AAAA,EACxB,CAAC,CAAA;AACD,EAAA,KAAA,CAAM,gBAAA,CAAiB,QAAQ,MAAM,CAAA;AACrC,EAAA,KAAA,CAAM,gBAAA,CAAiB,SAAA,EAAW,CAAC,CAAA,KAAM;AACvC,IAAA,IAAI,CAAA,CAAE,eAAeA,oBAAAA,EAAqB;AAC1C,IAAA,IAAI,CAAA,CAAE,QAAQ,OAAA,EAAS;AACrB,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAA,EAAO;AAAA,IACT,CAAA,MAAA,IAAW,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU;AAC7B,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAA,EAAO;AAAA,IACT;AAAA,EACF,CAAC,CAAA;AACH;;;AClFO,SAAS,cAAc,EAAA,EAAoB;AAChD,EAAA,MAAM,KAAK,aAAA,EAAc;AACzB,EAAA,MAAM,OAAO,WAAA,EAAY;AACzB,EAAA,EAAA,CAAG,aAAA,CAAc,YAAA,CAAa,cAAA,EAAgB,EAAA,GAAK,SAAS,OAAO,CAAA;AACnE,EAAA,EAAA,CAAG,aAAA,CAAc,SAAA,CAAU,MAAA,CAAO,WAAA,EAAa,EAAE,CAAA;AACjD,EAAA,EAAA,CAAG,aAAA,CAAc,KAAA,GAAQ,EAAA,GACrB,CAAA,qBAAA,EAAS,IAAI,CAAA,oBAAA,CAAA,GACb,+BAAA;AACJ,EAAA,QAAA,CAAS,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,gBAAA,EAAkB,EAAE,CAAA;AACnD,EAAA,EAAA,CAAG,IAAI,KAAA,CAAM,WAAA,CAAY,oBAAA,EAAsB,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,CAAA;AAC1D,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,cAAA,CAAe,mBAAmB,CAAA;AACzD,EAAA,IAAI,OAAO,KAAA,CAAM,WAAA,GAAc,EAAA,GAAK,CAAA,aAAA,EAAM,IAAI,CAAA,EAAA,CAAA,GAAO,qBAAA;AACvD;AAEO,SAAS,qBAAqB,EAAA,EAAoB;AACvD,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,cAAA,CAAe,yBAAyB,CAAA;AACjE,EAAA,IAAI,CAAC,OAAA,EAAS;AACd,EAAA,MAAMC,YAAAA,GAAc,uBAAA;AACpB,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,YAAA,CAAa,OAAA,CAAQA,YAAW,CAAC,CAAA;AACtD,EAAA,IAAI,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,QAAQ,GAAA,EAAK;AACzC,IAAA,EAAA,CAAG,IAAI,KAAA,CAAM,WAAA,CAAY,qBAAA,EAAuB,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI,CAAA;AAAA,EAC9D;AACA,EAAA,IAAI,QAAA,GAAW,KAAA;AACf,EAAA,IAAI,MAAA,GAAS,CAAA;AACb,EAAA,IAAI,MAAA,GAAS,GAAA;AACb,EAAA,OAAA,CAAQ,gBAAA,CAAiB,WAAA,EAAa,CAAC,CAAA,KAAM;AAC3C,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,QAAA,GAAW,IAAA;AACX,IAAA,MAAA,GAAS,CAAA,CAAE,OAAA;AACX,IAAA,MAAM,EAAA,GAAK,iBAAiB,EAAA,CAAG,GAAG,EAC/B,gBAAA,CAAiB,qBAAqB,EACtC,IAAA,EAAK;AACR,IAAA,MAAA,GAAS,UAAA,CAAW,EAAE,CAAA,IAAK,GAAA;AAC3B,IAAA,OAAA,CAAQ,SAAA,CAAU,IAAI,aAAa,CAAA;AACnC,IAAA,QAAA,CAAS,IAAA,CAAK,MAAM,MAAA,GAAS,WAAA;AAC7B,IAAA,QAAA,CAAS,IAAA,CAAK,MAAM,UAAA,GAAa,MAAA;AAAA,EACnC,CAAC,CAAA;AACD,EAAA,QAAA,CAAS,gBAAA,CAAiB,WAAA,EAAa,CAAC,CAAA,KAAM;AAC5C,IAAA,IAAI,CAAC,QAAA,EAAU;AACf,IAAA,MAAM,EAAA,GAAK,SAAS,CAAA,CAAE,OAAA;AACtB,IAAA,MAAM,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,WAAA,GAAc,GAAA,EAAK,MAAA,GAAS,EAAE,CAAC,CAAA;AACvE,IAAA,EAAA,CAAG,IAAI,KAAA,CAAM,WAAA,CAAY,qBAAA,EAAuB,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI,CAAA;AAAA,EAC1D,CAAC,CAAA;AACD,EAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,MAAM;AACzC,IAAA,IAAI,CAAC,QAAA,EAAU;AACf,IAAA,QAAA,GAAW,KAAA;AACX,IAAA,OAAA,CAAQ,SAAA,CAAU,OAAO,aAAa,CAAA;AACtC,IAAA,QAAA,CAAS,IAAA,CAAK,MAAM,MAAA,GAAS,EAAA;AAC7B,IAAA,QAAA,CAAS,IAAA,CAAK,MAAM,UAAA,GAAa,EAAA;AACjC,IAAA,MAAM,EAAA,GAAK,iBAAiB,EAAA,CAAG,GAAG,EAC/B,gBAAA,CAAiB,qBAAqB,EACtC,IAAA,EAAK;AACR,IAAA,MAAM,CAAA,GAAI,WAAW,EAAE,CAAA;AACvB,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,IAAK,IAAI,CAAA,EAAG;AAC/B,MAAA,YAAA,CAAa,OAAA,CAAQA,YAAAA,EAAa,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,IAC7C;AAAA,EACF,CAAC,CAAA;AACD,EAAA,OAAA,CAAQ,gBAAA,CAAiB,SAAA,EAAW,CAAC,CAAA,KAAM;AACzC,IAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,SAAA,IAAa,CAAA,CAAE,QAAQ,WAAA,EAAa;AAClD,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,MAAM,EAAA,GAAK,iBAAiB,EAAA,CAAG,GAAG,EAC/B,gBAAA,CAAiB,qBAAqB,EACtC,IAAA,EAAK;AACR,IAAA,MAAM,OAAA,GAAU,UAAA,CAAW,EAAE,CAAA,IAAK,GAAA;AAClC,IAAA,MAAM,IAAA,GAAO,CAAA,CAAE,QAAA,GAAW,EAAA,GAAK,EAAA;AAC/B,IAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,GAAA,KAAQ,SAAA,GAAY,OAAO,CAAC,IAAA;AAC5C,IAAA,MAAM,IAAI,IAAA,CAAK,GAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAK,GAAA,CAAI,MAAA,CAAO,WAAA,GAAc,GAAA,EAAK,UAAU,KAAK;AAAA,KACpD;AACA,IAAA,EAAA,CAAG,IAAI,KAAA,CAAM,WAAA,CAAY,qBAAA,EAAuB,CAAA,EAAG,CAAC,CAAA,EAAA,CAAI,CAAA;AACxD,IAAA,YAAA,CAAa,OAAA,CAAQA,YAAAA,EAAa,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,EAC7C,CAAC,CAAA;AACH;AAEO,SAAS,eAAe,EAAA,EAAoB;AACjD,EAAA,MAAM,IAAA,GAAO,EAAA,CAAG,GAAA,CAAI,aAAA,CAA2B,qBAAqB,CAAA;AACpE,EAAA,IAAI,CAAC,IAAA,EAAM;AACX,EAAA,IAAI,SAAA,GAAY,KAAA;AAChB,EAAA,IAAI,QAAA,GAKO,IAAA;AAEX,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KACrB,CAAA,YAAa,oBACb,CAAA,YAAa,mBAAA,IACZ,CAAA,YAAa,WAAA,IAAe,CAAA,CAAE,iBAAA;AAEjC,EAAA,QAAA,CAAS,gBAAA,CAAiB,SAAA,EAAW,CAAC,CAAA,KAAM;AAC1C,IAAA,IAAI,CAAA,CAAE,SAAS,OAAA,EAAS;AACxB,IAAA,IAAI,aAAA,CAAc,CAAA,CAAE,MAAM,CAAA,EAAG;AAC7B,IAAA,IAAI,EAAE,MAAA,EAAQ;AACd,IAAA,SAAA,GAAY,IAAA;AACZ,IAAA,QAAA,CAAS,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,iBAAiB,CAAA;AAC7C,IAAA,CAAA,CAAE,cAAA,EAAe;AAAA,EACnB,CAAC,CAAA;AACD,EAAA,QAAA,CAAS,gBAAA,CAAiB,OAAA,EAAS,CAAC,CAAA,KAAM;AACxC,IAAA,IAAI,CAAA,CAAE,SAAS,OAAA,EAAS;AACxB,IAAA,SAAA,GAAY,KAAA;AACZ,IAAA,QAAA,CAAS,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,iBAAiB,CAAA;AAAA,EAClD,CAAC,CAAA;AAED,EAAA,IAAA,CAAK,gBAAA;AAAA,IACH,WAAA;AAAA,IACA,CAAC,CAAA,KAAM;AACL,MAAA,IAAI,CAAC,SAAA,EAAW;AAChB,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,MAAA,QAAA,GAAW;AAAA,QACT,QAAQ,CAAA,CAAE,OAAA;AAAA,QACV,QAAQ,CAAA,CAAE,OAAA;AAAA,QACV,cAAc,IAAA,CAAK,UAAA;AAAA,QACnB,cAAc,IAAA,CAAK;AAAA,OACrB;AACA,MAAA,QAAA,CAAS,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,gBAAgB,CAAA;AAAA,IAC9C,CAAA;AAAA,IACA,EAAE,SAAS,IAAA;AAAK,GAClB;AAEA,EAAA,QAAA,CAAS,gBAAA,CAAiB,WAAA,EAAa,CAAC,CAAA,KAAM;AAC5C,IAAA,IAAI,CAAC,QAAA,EAAU;AACf,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,IAAA,CAAK,UAAA,GAAa,QAAA,CAAS,YAAA,IAAgB,CAAA,CAAE,UAAU,QAAA,CAAS,MAAA,CAAA;AAChE,IAAA,IAAA,CAAK,SAAA,GAAY,QAAA,CAAS,YAAA,IAAgB,CAAA,CAAE,UAAU,QAAA,CAAS,MAAA,CAAA;AAAA,EACjE,CAAC,CAAA;AACD,EAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,MAAM;AACzC,IAAA,IAAI,CAAC,QAAA,EAAU;AACf,IAAA,QAAA,GAAW,IAAA;AACX,IAAA,QAAA,CAAS,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,gBAAgB,CAAA;AAAA,EACjD,CAAC,CAAA;AACH;;;ACpIA,IAAI,SAAA,GAAgC,MAAA;AAE7B,SAAS,SAAA,GAAqB;AACnC,EAAA,OAAO,SAAA,KAAc,SAAA;AACvB;AAEO,SAAS,WAAW,EAAA,EAAoB;AAC7C,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,IAAI,cAAc,SAAA,EAAW;AAC3B,IAAA,WAAA,CAAY,EAAE,CAAA;AAAA,EAChB,CAAA,MAAO;AACL,IAAAjB,aAAY,GAAG,CAAA;AACf,IAAA,SAAA,GAAY,SAAA;AACZ,IAAA,EAAA,CAAG,QAAQ,WAAA,GAAc,aAAA;AAAA,EAC3B;AACF;AAEO,SAAS,YAAY,EAAA,EAAoB;AAC9C,EAAAC,YAAAA,EAAY;AACZ,EAAA,SAAA,GAAY,MAAA;AACZ,EAAA,EAAA,CAAG,QAAQ,WAAA,GAAc,aAAA;AAC3B;;;ACdA,IAAI,YAAgC,EAAC;AAErC,SAAS,gBAAA,CACP,EAAA,EACA,EAAA,EACA,EAAA,EACkB;AAClB,EAAA,MAAM,QAAQ,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,EAAE,CAAC,CAAA;AAC3C,EAAA,IACE,KAAA,CAAM,SAAS,MAAA,IACf,KAAA,CAAM,SAAS,OAAA,IACf,KAAA,CAAM,SAAS,MAAA,EACf;AACA,IAAA,KAAA,CAAM,CAAA,IAAK,EAAA;AACX,IAAA,KAAA,CAAM,CAAA,IAAK,EAAA;AAAA,EACb,CAAA,MAAA,IAAW,KAAA,CAAM,IAAA,KAAS,QAAA,EAAU;AAClC,IAAA,KAAA,CAAM,EAAA,IAAM,EAAA;AACZ,IAAA,KAAA,CAAM,EAAA,IAAM,EAAA;AAAA,EACd,WAAW,KAAA,CAAM,IAAA,KAAS,MAAA,IAAU,KAAA,CAAM,SAAS,OAAA,EAAS;AAC1D,IAAA,IAAI,OAAO,KAAA,CAAM,EAAA,KAAO,QAAA,QAAgB,EAAA,IAAM,EAAA;AAC9C,IAAA,IAAI,OAAO,KAAA,CAAM,EAAA,KAAO,QAAA,QAAgB,EAAA,IAAM,EAAA;AAC9C,IAAA,IAAI,OAAO,KAAA,CAAM,EAAA,KAAO,QAAA,QAAgB,EAAA,IAAM,EAAA;AAC9C,IAAA,IAAI,OAAO,KAAA,CAAM,EAAA,KAAO,QAAA,QAAgB,EAAA,IAAM,EAAA;AAAA,EAChD,CAAA,MAAA,IAAW,KAAA,CAAM,IAAA,KAAS,MAAA,EAAQ;AAChC,IAAA,KAAA,CAAM,CAAA,GAAA,CAAK,KAAA,CAAM,CAAA,IAAK,CAAA,IAAK,EAAA;AAC3B,IAAA,KAAA,CAAM,CAAA,GAAA,CAAK,KAAA,CAAM,CAAA,IAAK,CAAA,IAAK,EAAA;AAAA,EAC7B,CAAA,MAAA,IAAW,KAAA,CAAM,IAAA,KAAS,SAAA,EAAW;AACnC,IAAA,MAAM,GAAA,GAAM,KAAA,CAAM,MAAA,CACf,IAAA,EAAK,CACL,MAAM,KAAK,CAAA,CACX,GAAA,CAAI,CAAC,IAAA,KAAiB;AACrB,MAAA,MAAM,CAAC,GAAG,CAAC,CAAA,GAAI,KAAK,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACzC,MAAA,IAAI,OAAO,QAAA,CAAS,CAAC,CAAA,IAAK,MAAA,CAAO,SAAS,CAAC,CAAA;AACzC,QAAA,OAAO,CAAA,EAAG,CAAA,GAAI,EAAE,CAAA,CAAA,EAAI,IAAI,EAAE,CAAA,CAAA;AAC5B,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AACH,IAAA,KAAA,CAAM,MAAA,GAAS,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AAAA,EAC7B;AACA,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,aAAA,GAAyB;AACvC,EAAA,MAAM,MAAM,YAAA,EAAa;AACzB,EAAA,MAAM,GAAA,GAAM,sBAAsB,GAAG,CAAA;AACrC,EAAA,IAAI,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG,OAAO,KAAA;AAC7B,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,KAAK,OAAO,KAAA;AACjB,EAAA,MAAM,SAA6B,EAAC;AACpC,EAAA,KAAA,MAAW,MAAM,GAAA,EAAK;AACpB,IAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAC/C,IAAA,IAAI,EAAA,SAAW,IAAA,CAAK,IAAA,CAAK,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,CAAC,CAAC,CAAA;AAAA,EACpD;AACA,EAAA,IAAI,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG,OAAO,KAAA;AAChC,EAAA,SAAA,GAAY,MAAA;AACZ,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,kBAAA,GAA8B;AAC5C,EAAA,IAAI,SAAA,CAAU,MAAA,KAAW,CAAA,EAAG,OAAO,KAAA;AACnC,EAAA,MAAM,SAAmB,EAAC;AAC1B,EAAA,KAAA,MAAW,QAAQ,SAAA,EAAW;AAC5B,IAAA,MAAM,KAAA,GAAQ,eAAA,CAAgB,IAAA,CAAK,IAAI,CAAA;AACvC,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,IAAA,EAAM,EAAA,EAAI,EAAE,CAAA;AAC7C,IAAA,OAAA,CAAQ,EAAA,GAAK,KAAA;AACb,IAAA,UAAA,CAAW,OAAO,CAAA;AAClB,IAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA,EACnB;AACA,EAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACvB,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,WAAW,MAAA,CAAO,CAAC,GAAG,CAAA;AAAA,EACxD,CAAA,MAAA,IAAW,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG;AAC5B,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,QAAQ,CAAA;AAAA,EACvD;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,kBAAA,GAA8B;AAC5C,EAAA,MAAM,MAAM,YAAA,EAAa;AACzB,EAAA,MAAM,GAAA,GAAM,sBAAsB,GAAG,CAAA;AACrC,EAAA,IAAI,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG,OAAO,KAAA;AAC7B,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,KAAK,OAAO,KAAA;AACjB,EAAA,MAAM,SAAmB,EAAC;AAC1B,EAAA,KAAA,MAAW,MAAM,GAAA,EAAK;AACpB,IAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAC/C,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,MAAM,KAAA,GAAQ,eAAA,CAAgB,EAAA,CAAG,IAAI,CAAA;AACrC,IAAA,MAAM,SAAS,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,EAAE,CAAC,CAAA;AAC5C,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,MAAA,EAAQ,EAAA,EAAI,EAAE,CAAA;AAC/C,IAAA,OAAA,CAAQ,EAAA,GAAK,KAAA;AACb,IAAA,UAAA,CAAW,OAAO,CAAA;AAClB,IAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA,EACnB;AACA,EAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACvB,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,WAAW,MAAA,CAAO,CAAC,GAAG,CAAA;AAAA,EACxD,CAAA,MAAA,IAAW,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG;AAC5B,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,QAAQ,CAAA;AAAA,EACvD;AACA,EAAA,OAAO,OAAO,MAAA,GAAS,CAAA;AACzB;AAEA,SAAS,cAAA,CAAe,EAAA,EAAsB,EAAA,EAAY,EAAA,EAAqB;AAC7E,EAAA,IAAI,OAAA,CAAQ,EAAE,CAAA,EAAG;AACf,IAAA,WAAA,CAAY,EAAA,CAAG,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AACzB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,QAAiC,EAAC;AACxC,EAAA,IAAI,EAAA,CAAG,SAAS,MAAA,IAAU,EAAA,CAAG,SAAS,OAAA,IAAW,EAAA,CAAG,SAAS,MAAA,EAAQ;AACnE,IAAA,KAAA,CAAM,CAAA,GAAI,GAAG,CAAA,GAAI,EAAA;AACjB,IAAA,KAAA,CAAM,CAAA,GAAI,GAAG,CAAA,GAAI,EAAA;AAAA,EACnB,CAAA,MAAA,IAAW,EAAA,CAAG,IAAA,KAAS,QAAA,EAAU;AAC/B,IAAA,KAAA,CAAM,EAAA,GAAK,GAAG,EAAA,GAAK,EAAA;AACnB,IAAA,KAAA,CAAM,EAAA,GAAK,GAAG,EAAA,GAAK,EAAA;AAAA,EACrB,WAAW,EAAA,CAAG,IAAA,KAAS,MAAA,IAAU,EAAA,CAAG,SAAS,OAAA,EAAS;AACpD,IAAA,IAAI,OAAO,EAAA,CAAG,EAAA,KAAO,UAAU,KAAA,CAAM,EAAA,GAAK,GAAG,EAAA,GAAK,EAAA;AAClD,IAAA,IAAI,OAAO,EAAA,CAAG,EAAA,KAAO,UAAU,KAAA,CAAM,EAAA,GAAK,GAAG,EAAA,GAAK,EAAA;AAClD,IAAA,IAAI,OAAO,EAAA,CAAG,EAAA,KAAO,UAAU,KAAA,CAAM,EAAA,GAAK,GAAG,EAAA,GAAK,EAAA;AAClD,IAAA,IAAI,OAAO,EAAA,CAAG,EAAA,KAAO,UAAU,KAAA,CAAM,EAAA,GAAK,GAAG,EAAA,GAAK,EAAA;AAAA,EACpD,CAAA,MAAA,IAAW,EAAA,CAAG,IAAA,KAAS,MAAA,EAAQ;AAC7B,IAAA,KAAA,CAAM,CAAA,GAAA,CAAK,EAAA,CAAG,CAAA,IAAK,CAAA,IAAK,EAAA;AACxB,IAAA,KAAA,CAAM,CAAA,GAAA,CAAK,EAAA,CAAG,CAAA,IAAK,CAAA,IAAK,EAAA;AAAA,EAC1B,CAAA,MAAA,IAAW,EAAA,CAAG,IAAA,KAAS,SAAA,EAAW;AAChC,IAAA,MAAM,GAAA,GAAM,EAAA,CAAG,MAAA,CACZ,IAAA,EAAK,CACL,MAAM,KAAK,CAAA,CACX,GAAA,CAAI,CAAC,IAAA,KAAS;AACb,MAAA,MAAM,CAAC,GAAG,CAAC,CAAA,GAAI,KAAK,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,MAAM,CAAA;AACzC,MAAA,IAAI,OAAO,QAAA,CAAS,CAAC,CAAA,IAAK,MAAA,CAAO,SAAS,CAAC,CAAA;AACzC,QAAA,OAAO,CAAA,EAAG,CAAA,GAAI,EAAE,CAAA,CAAA,EAAI,IAAI,EAAE,CAAA,CAAA;AAC5B,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AACH,IAAA,KAAA,CAAM,MAAA,GAAS,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA;AAAA,EAC7B,CAAA,MAAO;AACL,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,iBAAA,CAAkB,EAAA,CAAG,IAAI,KAAK,CAAA;AAC9B,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,mBAAA,CAAoB,IAAY,EAAA,EAAqB;AACnE,EAAA,MAAM,MAAM,YAAA,EAAa;AACzB,EAAA,MAAM,GAAA,GAAM,sBAAsB,GAAG,CAAA;AACrC,EAAA,IAAI,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG,OAAO,KAAA;AAC7B,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,KAAK,OAAO,KAAA;AACjB,EAAA,IAAI,KAAA,GAAQ,KAAA;AACZ,EAAA,KAAA,MAAW,MAAM,GAAA,EAAK;AACpB,IAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAC/C,IAAA,IAAI,MAAM,cAAA,CAAe,EAAA,EAAI,EAAA,EAAI,EAAE,GAAG,KAAA,GAAQ,IAAA;AAAA,EAChD;AACA,EAAA,OAAO,KAAA;AACT;AC9JO,SAAS,sBAAsB,SAAA,EAA4B;AAChE,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,IAAO,GAAA,CAAI,QAAA,CAAS,MAAA,KAAW,GAAG,OAAO,KAAA;AAC9C,EAAA,MAAM,MAAM,YAAA,EAAa;AACzB,EAAA,IAAI,GAAA,CAAI,SAAS,SAAA,EAAW;AAC1B,IAAA,MAAM,MAAA,GACJ,SAAA,KAAc,CAAA,GAAI,GAAA,CAAI,QAAA,CAAS,CAAC,CAAA,GAAI,GAAA,CAAI,QAAA,CAAS,GAAA,CAAI,QAAA,CAAS,MAAA,GAAS,CAAC,CAAA;AAC1E,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,SAAA,EAAW,MAAA,CAAO,IAAI,CAAA;AACtD,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,GAAA,GAAM,IAAI,QAAA,CAAS,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,GAAA,CAAI,SAAS,CAAA;AAChE,EAAA,IAAI,GAAA,GAAM,GAAG,OAAO,KAAA;AACpB,EAAA,MAAM,WAAW,GAAA,GAAM,SAAA,GAAY,IAAI,QAAA,CAAS,MAAA,IAAU,IAAI,QAAA,CAAS,MAAA;AACvE,EAAA,YAAA,CAAa,EAAE,MAAM,SAAA,EAAW,SAAA,EAAW,IAAI,QAAA,CAAS,OAAO,CAAA,CAAE,EAAA,EAAI,CAAA;AACrE,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,oBAAA,CACd,KACA,IAAA,EACU;AACV,EAAA,OAAO,IAAI,QAAA,CACR,MAAA;AAAA,IACC,CAAC,OACC,EAAA,CAAG,WAAA,CAAY,WAAW,CAAA,IAAK,gBAAA,CAAiB,EAAA,EAAI,IAAI,CAAA,KAAM;AAAA,GAClE,CACC,GAAA,CAAI,CAAC,EAAA,KAAO,GAAG,EAAE,CAAA;AACtB;AAEO,SAAS,gBAAgB,CAAA,EAAwB;AACtD,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,MAAM,QAAQ,WAAY;AACxB,IAAA,MAAM,MAAM,YAAA,EAAa;AACzB,IAAA,IAAI,GAAA,CAAI,SAAS,SAAA,EAAW;AAC1B,MAAA,MAAM,CAAA,GAAI,IAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,GAAA,CAAI,SAAS,CAAA;AACzD,MAAA,IAAI,CAAA,SAAU,CAAA,CAAE,IAAA;AAAA,IAClB;AACA,IAAA,OAAO,CAAA;AAAA,EACT,CAAA,GAAG;AACH,EAAA,MAAM,UAAA,GACJ,IAAA,GAAO,CAAA,GACH,oBAAA,CAAqB,GAAA,EAAK,IAAI,CAAA,GAC9B,GAAA,CAAI,QAAA,CAAS,GAAA,CAAI,CAAC,EAAA,KAAO,GAAG,EAAE,CAAA;AACpC,EAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC7B,EAAA,CAAA,CAAE,cAAA,EAAe;AACjB,EAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC3B,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,SAAA,EAAW,WAAW,UAAA,CAAW,CAAC,GAAG,CAAA;AAAA,EAC5D,CAAA,MAAO;AACL,IAAA,YAAA,CAAa,EAAE,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,YAAY,CAAA;AAAA,EAC3D;AACF;;;AC1BO,SAAS,sBAAsB,EAAA,EAAoB;AACxD,EAAA,QAAA,CAAS,gBAAA,CAAiB,SAAA,EAAW,CAAC,CAAA,KAAM;AAC1C,IAAA,MAAM,MAAA,GACJ,CAAA,CAAE,MAAA,YAAkB,gBAAA,IACpB,CAAA,CAAE,MAAA,YAAkB,mBAAA,IACnB,CAAA,CAAE,MAAA,YAAkB,WAAA,IAAe,CAAA,CAAE,MAAA,CAAO,iBAAA;AAC/C,IAAA,MAAM,GAAA,GAAM,CAAA,CAAE,OAAA,IAAW,CAAA,CAAE,OAAA;AAE3B,IAAA,IAAI,CAAA,CAAE,QAAQ,QAAA,EAAU;AACtB,MAAA,MAAM,MAAM,YAAA,EAAa;AACzB,MAAA,IAAI,GAAA,CAAI,SAAS,MAAA,EAAQ;AACvB,QAAA,YAAA,CAAa,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,MAC/B;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,GAAA,KAAQ,CAAA,CAAE,GAAA,KAAQ,GAAA,IAAQ,CAAA,CAAE,GAAA,KAAQ,GAAA,IAAO,CAAA,CAAE,QAAA,CAAA,EAAY;AACvE,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAI,OAAO,EAAA,CAAG,UAAA,CAAW,SAAA,KAAc,UAAA;AACrC,QAAA,EAAA,CAAG,WAAW,SAAA,EAAU;AAAA,WACrB,EAAA,CAAG,UAAA,CAAW,YAAA,CAAa,MAAA,EAAQ,EAAE,CAAA;AAC1C,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,MAAA,KAAW,CAAA,CAAE,QAAQ,QAAA,IAAY,CAAA,CAAE,QAAQ,WAAA,CAAA,EAAc;AAC5D,MAAA,MAAM,MAAM,YAAA,EAAa;AACzB,MAAA,MAAM,GAAA,GAAM,sBAAsB,GAAG,CAAA;AACrC,MAAA,IAAI,GAAA,CAAI,SAAS,CAAA,EAAG;AAClB,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,KAAA,MAAW,EAAA,IAAM,GAAA,EAAK,aAAA,CAAc,EAAE,CAAA;AACtC,QAAA,YAAA,CAAa,EAAE,IAAA,EAAM,MAAA,EAAQ,CAAA;AAAA,MAC/B,CAAA,MAAA,IAAW,GAAA,CAAI,IAAA,KAAS,SAAA,EAAW;AACjC,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,aAAA,CAAc,IAAI,SAAS,CAAA;AAAA,MAC7B,CAAA,MAAA,IAAW,GAAA,CAAI,IAAA,KAAS,QAAA,EAAU;AAChC,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,YAAA,CAAa,IAAI,QAAQ,CAAA;AAAA,MAC3B;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IACE,CAAC,MAAA,IACD,CAAC,GAAA,KACA,EAAE,GAAA,KAAQ,WAAA,IACT,CAAA,CAAE,GAAA,KAAQ,gBACV,CAAA,CAAE,GAAA,KAAQ,SAAA,IACV,CAAA,CAAE,QAAQ,WAAA,CAAA,EACZ;AACA,MAAA,MAAM,MAAM,YAAA,EAAa;AACzB,MAAA,IACE,GAAA,CAAI,SAAS,SAAA,KACZ,CAAA,CAAE,QAAQ,WAAA,IAAe,CAAA,CAAE,QAAQ,YAAA,CAAA,EACpC;AACA,QAAA,MAAM,MAAM,MAAA,EAAO;AACnB,QAAA,MAAM,EAAA,GAAK,KAAK,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,GAAA,CAAI,SAAS,CAAA;AAC3D,QAAA,IAAI,EAAA,EAAI;AACN,UAAA,MAAMiB,KAAAA,GAAO,CAAA,CAAE,QAAA,GAAW,GAAA,GAAO,GAAA;AACjC,UAAA,MAAM,EAAA,GAAK,CAAA,CAAE,GAAA,KAAQ,WAAA,GAAc,CAACA,KAAAA,GAAOA,KAAAA;AAC3C,UAAA,aAAA,CAAc,GAAA,CAAI,SAAA,EAAW,EAAE,IAAA,EAAM,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,EAAA,CAAG,IAAA,GAAO,EAAE,CAAA,EAAG,CAAA;AAChE,UAAA,CAAA,CAAE,cAAA,EAAe;AAAA,QACnB;AACA,QAAA;AAAA,MACF;AACA,MAAA,MAAM,IAAA,GAAO,CAAA,CAAE,QAAA,GAAW,EAAA,GAAK,CAAA;AAC/B,MAAA,MAAM,EAAA,GACJ,EAAE,GAAA,KAAQ,WAAA,GAAc,CAAC,IAAA,GAAO,CAAA,CAAE,GAAA,KAAQ,YAAA,GAAe,IAAA,GAAO,CAAA;AAClE,MAAA,MAAM,EAAA,GAAK,EAAE,GAAA,KAAQ,SAAA,GAAY,CAAC,IAAA,GAAO,CAAA,CAAE,GAAA,KAAQ,WAAA,GAAc,IAAA,GAAO,CAAA;AACxE,MAAA,IAAI,mBAAA,CAAoB,EAAA,EAAI,EAAE,CAAA,IAAK,cAAA,EAAe;AAClD,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,GAAA,IAAO,CAAA,CAAE,QAAQ,KAAA,EAAO;AACtC,MAAA,MAAM,MAAM,YAAA,EAAa;AACzB,MAAA,IAAI,GAAA,CAAI,SAAS,SAAA,EAAW;AAC1B,QAAA,MAAM,MAAM,MAAA,EAAO;AACnB,QAAA,IAAI,GAAA,IAAO,GAAA,CAAI,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AAClC,UAAA,MAAM,MAAA,GAAS,CAAC,GAAG,GAAA,CAAI,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,IAAA,GAAO,EAAE,IAAI,CAAA;AAC/D,UAAA,MAAM,GAAA,GAAM,OAAO,SAAA,CAAU,CAAC,MAAM,CAAA,CAAE,EAAA,KAAO,IAAI,SAAS,CAAA;AAC1D,UAAA,IAAI,OAAO,CAAA,EAAG;AACZ,YAAA,MAAM,GAAA,GAAM,CAAA,CAAE,QAAA,GAAW,EAAA,GAAK,CAAA;AAC9B,YAAA,MAAM,OAAA,GAAA,CAAW,GAAA,GAAM,GAAA,GAAM,MAAA,CAAO,UAAU,MAAA,CAAO,MAAA;AACrD,YAAA,YAAA,CAAa,EAAE,MAAM,SAAA,EAAW,SAAA,EAAW,OAAO,OAAO,CAAA,CAAE,IAAI,CAAA;AAC/D,YAAA,CAAA,CAAE,cAAA,EAAe;AAAA,UACnB;AAAA,QACF;AACA,QAAA;AAAA,MACF;AACA,MAAA,IAAI,sBAAsB,CAAA,CAAE,QAAA,GAAW,KAAK,CAAC,CAAA,IAAK,cAAA,EAAe;AACjE,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,UAAU,CAAC,GAAA,KAAQ,EAAE,GAAA,KAAQ,GAAA,IAAO,CAAA,CAAE,GAAA,KAAQ,GAAA,CAAA,EAAM;AACvD,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,cAAA,CAAe,CAAC,eAAe,CAAA;AAC/B,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,MAAM,GAAA,GAAM,CAAA,CAAE,GAAA,CAAI,WAAA,EAAY;AAC9B,IAAA,IAAI,GAAA,KAAQ,GAAA,IAAO,CAAC,MAAA,EAAQ;AAC1B,MAAA,eAAA,CAAgB,CAAC,CAAA;AACjB,MAAA;AAAA,IACF;AACA,IAAA,IAAI,QAAQ,GAAA,EAAK;AACf,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,WAAA,EAAY;AACZ,MAAA;AAAA,IACF;AACA,IAAA,IAAI,GAAA,KAAQ,GAAA,IAAO,CAAA,CAAE,QAAA,EAAU;AAC7B,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,gBAAA,EAAiB;AACjB,MAAA;AAAA,IACF;AACA,IAAA,IAAI,QAAQ,GAAA,EAAK;AACf,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,KAAK,YAAY,EAAE,CAAA;AACnB,MAAA;AAAA,IACF;AACA,IAAA,IAAI,GAAA,KAAQ,GAAA,IAAO,CAAC,MAAA,EAAQ;AAC1B,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAI,CAAA,CAAE,UAAU,IAAA,EAAK;AAAA,WAChB,IAAA,EAAK;AACV,MAAA;AAAA,IACF;AACA,IAAA,IAAI,GAAA,KAAQ,GAAA,IAAO,CAAC,MAAA,EAAQ;AAC1B,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,IAAA,EAAK;AACL,MAAA;AAAA,IACF;AACA,IAAA,IAAA,CAAK,GAAA,KAAQ,GAAA,IAAO,GAAA,KAAQ,GAAA,KAAQ,CAAC,MAAA,EAAQ;AAC3C,MAAA,IAAI,eAAc,EAAG;AACnB,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAI,QAAQ,GAAA,EAAK;AACf,UAAA,MAAM,MAAM,YAAA,EAAa;AACzB,UAAA,MAAM,GAAA,GAAM,sBAAsB,GAAG,CAAA;AACrC,UAAA,KAAA,MAAW,EAAA,IAAM,GAAA,EAAK,aAAA,CAAc,EAAE,CAAA;AACtC,UAAA,IAAI,IAAI,MAAA,GAAS,CAAA,eAAgB,EAAE,IAAA,EAAM,QAAQ,CAAA;AAAA,QACnD;AAAA,MACF;AACA,MAAA;AAAA,IACF;AACA,IAAA,IAAI,GAAA,KAAQ,GAAA,IAAO,CAAC,MAAA,EAAQ;AAC1B,MAAA,IAAI,oBAAmB,EAAG;AACxB,QAAA,CAAA,CAAE,cAAA,EAAe;AAAA,MACnB;AACA,MAAA;AAAA,IACF;AACA,IAAA,IAAI,GAAA,KAAQ,GAAA,IAAO,CAAC,MAAA,EAAQ;AAC1B,MAAA,IAAI,oBAAmB,EAAG;AACxB,QAAA,CAAA,CAAE,cAAA,EAAe;AAAA,MACnB;AACA,MAAA;AAAA,IACF;AACA,IAAA,IAAI,GAAA,KAAQ,GAAA,IAAO,CAAC,MAAA,EAAQ;AAC1B,MAAA,MAAM,MAAM,YAAA,EAAa;AACzB,MAAA,IAAI,EAAE,QAAA,EAAU;AACd,QAAA,IAAI,GAAA,CAAI,SAAS,SAAA,EAAW;AAC1B,UAAA,MAAM,MAAM,MAAA,EAAO;AACnB,UAAA,MAAM,EAAA,GAAK,KAAK,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,GAAA,CAAI,SAAS,CAAA;AAC3D,UAAA,IAAI,EAAA,IAAM,OAAA,CAAQ,EAAE,CAAA,EAAG;AACrB,YAAA,cAAA,CAAe,IAAI,SAAS,CAAA;AAC5B,YAAA,CAAA,CAAE,cAAA,EAAe;AAAA,UACnB;AAAA,QACF;AAAA,MACF,WAAW,GAAA,CAAI,IAAA,KAAS,cAAc,GAAA,CAAI,UAAA,CAAW,UAAU,CAAA,EAAG;AAChE,QAAA,MAAM,KAAA,GAAQ,aAAA,CAAc,GAAA,CAAI,UAAU,CAAA;AAC1C,QAAA,IAAI,KAAA,IAAS,cAAA,EAAe;AAAA,MAC9B;AACA,MAAA;AAAA,IACF;AACA,IAAA,IAAA,CAAK,EAAE,IAAA,KAAS,cAAA,IAAkB,EAAE,IAAA,KAAS,aAAA,KAAkB,CAAC,MAAA,EAAQ;AACtE,MAAA,MAAM,MAAM,YAAA,EAAa;AACzB,MAAA,MAAM,GAAA,GAAM,sBAAsB,GAAG,CAAA;AACrC,MAAA,IAAI,GAAA,CAAI,WAAW,CAAA,EAAG;AACtB,MAAA,MAAM,MAAM,MAAA,EAAO;AACnB,MAAA,IAAI,CAAC,GAAA,EAAK;AACV,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAM,OAAA,GAAU,EAAE,IAAA,KAAS,cAAA;AAC3B,MAAA,KAAA,MAAW,MAAM,GAAA,EAAK;AACpB,QAAA,IAAI,EAAE,QAAA,EAAU;AACd,UAAA,IAAI,OAAA,mBAA0B,EAAE,CAAA;AAAA,kCACR,EAAE,CAAA;AAAA,QAC5B,CAAA,MAAO;AACL,UAAA,MAAM,GAAA,GAAM,IAAI,QAAA,CAAS,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AACrD,UAAA,IAAI,OAAA,IAAW,GAAA,GAAM,GAAA,CAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AAC5C,YAAA,cAAA,CAAe,IAAI,GAAA,CAAI,QAAA,CAAS,MAAM,CAAC,CAAA,CAAE,IAAI,OAAO,CAAA;AAAA,UACtD,CAAA,MAAA,IAAW,CAAC,OAAA,IAAW,GAAA,GAAM,CAAA,EAAG;AAC9B,YAAA,cAAA,CAAe,IAAI,GAAA,CAAI,QAAA,CAAS,MAAM,CAAC,CAAA,CAAE,IAAI,QAAQ,CAAA;AAAA,UACvD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;;;AClKO,SAAS,WAAW,IAAA,EAAqC;AAC9D,EAAA,MAAM,KAAK,OAAA,EAAQ;AACnB,EAAA,IAAI,CAAC,EAAA,EAAI;AACP,IAAA,OAAA,CAAQ,MAAM,oCAAoC,CAAA;AAClD,IAAA;AAAA,EACF;AAIA,EAAA,QAAA,CAAS,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,eAAe,CAAA;AAC3C,EAAA,QAAA,CAAS,eAAA,CAAgB,SAAA,CAAU,GAAA,CAAI,eAAe,CAAA;AAEtD,EAAA,QAAA,EAAS;AACT,EAAA,aAAA,CAAc,EAAE,CAAA;AAChB,EAAA,aAAA,CAAc,MAAM,aAAA,CAAc,EAAE,CAAC,CAAA;AAErC,EAAA,UAAA,CAAW,GAAG,MAAM,CAAA;AACpB,EAAA,eAAA,CAAgB,EAAA,CAAG,WAAA,EAAa,EAAA,CAAG,SAAS,CAAA;AAC5C,EAAA,cAAA,CAAe,GAAG,SAAS,CAAA;AAC3B,EAAA,YAAA,CAAa,EAAA,CAAG,cAAA,EAAgB,EAAA,CAAG,UAAA,EAAY,GAAG,aAAa,CAAA;AAE/D,EAAA,MAAM,UAAA,GAAa,kBAAkB,KAAA,EAAM;AAC3C,EAAA,QAAA,CACG,cAAA,CAAe,mBAAmB,CAAA,EACjC,gBAAA,CAAiB,SAAS,MAAM,UAAA,EAAY,MAAM,CAAA;AAEtD,EAAA,EAAA,CAAG,SAAA,CAAU,gBAAA,CAAiB,OAAA,EAAS,CAAC,CAAA,KAAM;AAC5C,IAAA,MAAM,GAAA,GAAO,EAAE,MAAA,CAAuB,OAAA;AAAA,MACpC;AAAA,KACF;AACA,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,MAAM,MAAA,GAAS,GAAA,CAAI,OAAA,CAAQ,YAAA,IAAgB,EAAA;AAC3C,IAAA,MAAM,CAAA,GAAI,MAAA,CAAO,KAAA,CAAM,eAAe,CAAA;AACtC,IAAA,IAAI,CAAC,CAAA,EAAG;AACR,IAAA,YAAA,CAAa,EAAE,KAAA,EAAO,MAAA,CAAO,CAAA,CAAE,CAAC,CAAC,CAAA,EAAG,MAAA,EAAQ,MAAA,CAAO,CAAA,CAAE,CAAC,CAAC,GAAG,CAAA;AAAA,EAC5D,CAAC,CAAA;AAED,EAAA,EAAA,CAAG,gBAAA,CAAiB,gBAAA,CAAiB,OAAA,EAAS,MAAM;AAClD,IAAA,MAAM,CAAA,GAAI,MAAA,CAAO,EAAA,CAAG,gBAAA,CAAiB,KAAK,CAAA;AAC1C,IAAA,IAAI,CAAA,IAAK,OAAO,CAAA,IAAK,GAAA,eAAmB,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,EACtD,CAAC,CAAA;AACD,EAAA,EAAA,CAAG,iBAAA,CAAkB,gBAAA,CAAiB,OAAA,EAAS,MAAM;AACnD,IAAA,MAAM,CAAA,GAAI,MAAA,CAAO,EAAA,CAAG,iBAAA,CAAkB,KAAK,CAAA;AAC3C,IAAA,IAAI,CAAA,IAAK,OAAO,CAAA,IAAK,GAAA,eAAmB,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA,EACvD,CAAC,CAAA;AAED,EAAA,MAAM,SAAA,GAA6B;AAAA,IACjC,KAAK,EAAA,CAAG,GAAA;AAAA,IACR,WAAW,CAAC,IAAA,EAAM,SAAS,SAAA,CAAU,EAAA,EAAI,MAAM,IAAI;AAAA,GACrD;AACA,EAAA,EAAA,CAAG,eAAe,gBAAA,CAAiB,OAAA,EAAS,MAAM,EAAA,CAAG,cAAA,CAAe,OAAO,CAAA;AAC3E,EAAA,EAAA,CAAG,cAAA,CAAe,gBAAA,CAAiB,QAAA,EAAU,MAAM;AACjD,IAAA,MAAM,IAAA,GAAO,EAAA,CAAG,cAAA,CAAe,KAAA,GAAQ,CAAC,CAAA;AACxC,IAAA,IAAI,IAAA,EAAM,KAAK,oBAAA,CAAqB,IAAA,EAAM,SAAS,CAAA;AACnD,IAAA,EAAA,CAAG,eAAe,KAAA,GAAQ,EAAA;AAAA,EAC5B,CAAC,CAAA;AAED,EAAA,MAAM,WAAW,MAAY;AAC3B,IAAA,IAAI,OAAO,EAAA,CAAG,UAAA,CAAW,SAAA,KAAc,UAAA;AACrC,MAAA,EAAA,CAAG,WAAW,SAAA,EAAU;AAAA,SACrB,EAAA,CAAG,UAAA,CAAW,YAAA,CAAa,MAAA,EAAQ,EAAE,CAAA;AAAA,EAC5C,CAAA;AACA,EAAA,EAAA,CAAG,OAAA,CAAQ,gBAAA,CAAiB,OAAA,EAAS,QAAQ,CAAA;AAC7C,EAAA,QAAA,CACG,cAAA,CAAe,sBAAsB,CAAA,EACpC,gBAAA,CAAiB,SAAS,QAAQ,CAAA;AAEtC,EAAA,MAAM,aAAA,GAAgB,0BAAA;AACtB,EAAA,MAAM,QAAA,GAAW,QAAA,CAAS,cAAA,CAAe,kBAAkB,CAAA;AAC3D,EAAA,IAAI,QAAA,IAAY,CAAC,YAAA,CAAa,OAAA,CAAQ,aAAa,CAAA,EAAG;AACpD,IAAA,QAAA,CAAS,MAAA,GAAS,KAAA;AAClB,IAAA,UAAA,CAAW,MAAM,QAAA,CAAS,SAAA,CAAU,GAAA,CAAI,YAAY,GAAG,GAAG,CAAA;AAC1D,IAAA,MAAM,UAAU,MAAY;AAC1B,MAAA,QAAA,CAAS,SAAA,CAAU,OAAO,YAAY,CAAA;AACtC,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,QAAA,CAAS,MAAA,GAAS,IAAA;AAAA,MACpB,GAAG,GAAG,CAAA;AACN,MAAA,YAAA,CAAa,OAAA,CAAQ,eAAe,GAAG,CAAA;AAAA,IACzC,CAAA;AACA,IAAA,QAAA,CACG,cAAA,CAAe,wBAAwB,CAAA,EACtC,gBAAA,CAAiB,SAAS,OAAO,CAAA;AACrC,IAAA,UAAA,CAAW,SAAS,GAAI,CAAA;AAAA,EAC1B;AAEA,EAAA,sBAAA,CAAuB,SAAS,CAAA;AAChC,EAAA,oBAAA,CAAqB,EAAE,CAAA;AAEvB,EAAA,EAAA,CAAG,MAAA,CAAO,gBAAA,CAAiB,UAAA,EAAY,CAAC,CAAA,KAAM;AAC5C,IAAA,MAAM,MAAA,GAAU,CAAA,CAAE,MAAA,CAAmB,OAAA,CAAqB,gBAAgB,CAAA;AAC1E,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,EAAA,GAAK,MAAA,CAAO,YAAA,CAAa,cAAc,CAAA;AAC7C,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,MAAM,MAAM,MAAA,EAAO;AACnB,IAAA,MAAM,EAAA,GAAK,KAAK,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AAChD,IAAA,IAAI,CAAC,EAAA,IAAM,EAAA,CAAG,IAAA,KAAS,MAAA,EAAQ;AAC/B,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,mBAAA,CAAoB,EAAA,CAAG,QAAQ,EAAE,CAAA;AAAA,EACnC,CAAC,CAAA;AAED,EAAA,SAAA,CAAU,MAAM,YAAA,CAAa,EAAE,CAAC,CAAA;AAChC,EAAA,YAAA,CAAa,EAAE,CAAA;AAEf,EAAA,cAAA,CAAe,EAAE,CAAA;AAEjB,EAAA,EAAA,CAAG,UAAA,CAAW,gBAAA,CAAiB,OAAA,EAAS,MAAM;AAC5C,IAAA,UAAA,CAAW,EAAE,KAAA,EAAO,EAAA,CAAG,UAAA,CAAW,OAAO,CAAA;AAAA,EAC3C,CAAC,CAAA;AAED,EAAA,EAAA,CAAG,QAAQ,gBAAA,CAAiB,OAAA,EAAS,MAAM,KAAK,WAAA,CAAY,EAAE,CAAC,CAAA;AAC/D,EAAA,EAAA,CAAG,OAAO,gBAAA,CAAiB,OAAA,EAAS,MAAM,aAAA,CAAc,EAAE,CAAC,CAAA;AAE3D,EAAA,WAAA,EAAY;AACZ,EAAA,gBAAA,EAAiB;AACjB,EAAA,gBAAA,CAAiB;AAAA,IACf;AAAA,MACE,EAAA,EAAI,MAAA;AAAA,MACJ,KAAA,EAAO,uDAAA;AAAA,MACP,IAAA,EAAM,gEAAA;AAAA,MACN,GAAA,EAAK,MAAM,KAAK,WAAA,CAAY,EAAE;AAAA,KAChC;AAAA,IACA;AAAA,MACE,EAAA,EAAI,KAAA;AAAA,MACJ,KAAA,EAAO,iDAAA;AAAA,MACP,IAAA,EAAM,8CAAA;AAAA,MACN,GAAA,EAAK,MAAM,aAAA,CAAc,EAAE;AAAA,KAC7B;AAAA,IACA;AAAA,MACE,EAAA,EAAI,MAAA;AAAA,MACJ,KAAA,EAAO,wBAAA;AAAA,MACP,IAAA,EAAM,SAAA;AAAA,MACN,GAAA,EAAK,MAAM,KAAK,WAAA,CAAY,EAAE;AAAA,KAChC;AAAA,IACA;AAAA,MACE,EAAA,EAAI,QAAA;AAAA,MACJ,KAAA,EAAO,wBAAA;AAAA,MACP,IAAA,EAAM,0DAAA;AAAA,MACN,GAAA,EAAK,MAAM,KAAK,aAAA,CAAc,EAAE;AAAA,KAClC;AAAA,IACA,EAAE,EAAA,EAAI,MAAA,EAAQ,KAAA,EAAO,kCAAA,EAAW,MAAM,SAAA,EAAM,GAAA,EAAK,MAAM,IAAA,EAAK,EAAE;AAAA,IAC9D,EAAE,EAAA,EAAI,MAAA,EAAQ,KAAA,EAAO,kCAAA,EAAW,MAAM,yBAAA,EAAY,GAAA,EAAK,MAAM,IAAA,EAAK,EAAE;AAAA,IACpE;AAAA,MACE,EAAA,EAAI,SAAA;AAAA,MACJ,KAAA,EAAO,qCAAA;AAAA,MACP,IAAA,EAAM,eAAA;AAAA,MACN,GAAA,EAAK,MAAM,gBAAA;AAAiB,KAC9B;AAAA,IACA;AAAA,MACE,EAAA,EAAI,MAAA;AAAA,MACJ,KAAA,EAAO,kCAAA;AAAA,MACP,IAAA,EAAM,oDAAA;AAAA,MACN,GAAA,EAAK,MAAM,UAAA,CAAW,EAAE;AAAA,KAC1B;AAAA,IACA;AAAA,MACE,EAAA,EAAI,MAAA;AAAA,MACJ,KAAA,EAAO,kCAAA;AAAA,MACP,IAAA,EAAM,GAAA;AAAA,MACN,GAAA,EAAK,MAAM,cAAA,CAAe,CAAC,eAAe;AAAA,KAC5C;AAAA,IACA,EAAE,IAAI,MAAA,EAAQ,KAAA,EAAO,0CAAY,IAAA,EAAM,aAAA,EAAe,KAAK,QAAA;AAAS,GACrE,CAAA;AACD,EAAA,EAAA,CAAG,QAAQ,gBAAA,CAAiB,OAAA,EAAS,MAAM,KAAK,WAAA,CAAY,EAAE,CAAC,CAAA;AAC/D,EAAA,EAAA,CAAG,UAAU,gBAAA,CAAiB,OAAA,EAAS,MAAM,KAAK,aAAA,CAAc,EAAE,CAAC,CAAA;AACnE,EAAA,EAAA,CAAG,OAAA,CAAQ,gBAAA,CAAiB,OAAA,EAAS,MAAM,MAAM,CAAA;AACjD,EAAA,EAAA,CAAG,OAAA,CAAQ,gBAAA,CAAiB,OAAA,EAAS,MAAM,MAAM,CAAA;AACjD,EAAA,EAAA,CAAG,aAAA,CAAc,gBAAA;AAAA,IAAiB,OAAA;AAAA,IAAS,MACzC,cAAA,CAAe,CAAC,aAAA,EAAe;AAAA,GACjC;AACA,EAAA,EAAA,CAAG,QAAQ,gBAAA,CAAiB,OAAA,EAAS,MAAM,UAAA,CAAW,EAAE,CAAC,CAAA;AACzD,EAAA,EAAA,CAAG,UAAA,CAAW,gBAAA,CAAiB,OAAA,EAAS,MAAM;AAC5C,IAAA,IAAI,WAAU,EAAG;AACf,MAAA,WAAA,CAAY,EAAE,CAAA;AACd,MAAA,UAAA,CAAW,EAAE,CAAA;AAAA,IACf;AAAA,EACF,CAAC,CAAA;AACD,EAAA,EAAA,CAAG,UAAA,CAAW,gBAAA,CAAiB,OAAA,EAAS,MAAM;AAC5C,IAAA,EAAA,CAAG,UAAA,CAAW,cAAc,MAAA,CAAO,EAAA,CAAG,WAAW,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,GAAI,GAAA;AAAA,EACvE,CAAC,CAAA;AAED,EAAA,EAAA,CAAG,aAAa,gBAAA,CAAiB,OAAA,EAAS,MAAM,KAAK,SAAA,CAAU,EAAE,CAAC,CAAA;AAElE,EAAA,QAAA,CAAS,gBAAA,CAAiB,OAAA,EAAS,CAAC,CAAA,KAAM;AACxC,IAAA,MAAM,MAAA,GAAU,EAAE,MAAA,CAAuB,OAAA;AAAA,MACvC;AAAA,KACF;AACA,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,OAAA,CAA2B,QAAQ,CAAA;AACzD,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAA,CAAO,KAAA,EAAM;AACb,IAAA,IAAI,MAAA,KAAW,EAAA,CAAG,SAAA,EAAW,MAAA,CAAO,gBAAgB,WAAW,CAAA;AAAA,EACjE,CAAC,CAAA;AAED,EAAA,qBAAA,CAAsB,EAAE,CAAA;AAExB,EAAA,MAAA,CAAO,gBAAA,CAAiB,cAAA,EAAgB,CAAC,CAAA,KAAM;AAC7C,IAAA,IAAI,OAAA,EAAQ,EAAG,CAAA,CAAE,cAAA,EAAe;AAAA,EAClC,CAAC,CAAA;AAED,EAAA,IAAI,MAAM,SAAA,EAAW;AACnB,IAAA,KAAKP,cAAAA,CAAc,EAAA,EAAI,IAAA,CAAK,SAAS,CAAA;AAAA,EACvC,CAAA,MAAA,IAAW,CAAC,MAAA,EAAO,EAAG;AACpB,IAAA,UAAA,EAAW;AACX,IAAA,SAAA,CAAU,EAAA,EAAI,uFAAgC,IAAI,CAAA;AAAA,EACpD,CAAA,MAAO;AACL,IAAA,SAAA,CAAU,EAAA,EAAI,sBAAO,IAAI,CAAA;AAAA,EAC3B;AACF;AAEA,SAAS,aAAa,EAAA,EAAoB;AACxC,EAAA,EAAA,CAAG,OAAA,CAAQ,QAAA,GAAW,CAAC,OAAA,EAAQ;AAC/B,EAAA,EAAA,CAAG,OAAA,CAAQ,QAAA,GAAW,CAAC,OAAA,EAAQ;AAC/B,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,IAAI,GAAA,EAAK;AACP,IAAA,IAAI,QAAA,CAAS,aAAA,KAAkB,EAAA,CAAG,UAAA,EAAY;AAC5C,MAAA,EAAA,CAAG,UAAA,CAAW,QAAQ,GAAA,CAAI,KAAA;AAAA,IAC5B;AACA,IAAA,IAAI,QAAA,CAAS,aAAA,KAAkB,EAAA,CAAG,gBAAA,EAAkB;AAClD,MAAA,EAAA,CAAG,gBAAA,CAAiB,KAAA,GAAQ,MAAA,CAAO,GAAA,CAAI,OAAO,KAAK,CAAA;AAAA,IACrD;AACA,IAAA,IAAI,QAAA,CAAS,aAAA,KAAkB,EAAA,CAAG,iBAAA,EAAmB;AACnD,MAAA,EAAA,CAAG,iBAAA,CAAkB,KAAA,GAAQ,MAAA,CAAO,GAAA,CAAI,OAAO,MAAM,CAAA;AAAA,IACvD;AACA,IAAA,EAAA,CAAG,UAAU,WAAA,GAAc,OAAA,EAAQ,GAC/B,OAAA,GACE,IAAwB,EAAA,IAAM,EAAA;AACpC,IAAA,EAAA,CAAG,QAAQ,QAAA,GAAW,KAAA;AACtB,IAAA,EAAA,CAAG,SAAA,CAAU,WAAW,OAAA,EAAQ;AAAA,EAClC,CAAA,MAAO;AACL,IAAA,EAAA,CAAG,WAAW,KAAA,GAAQ,EAAA;AACtB,IAAA,EAAA,CAAG,iBAAiB,KAAA,GAAQ,EAAA;AAC5B,IAAA,EAAA,CAAG,kBAAkB,KAAA,GAAQ,EAAA;AAC7B,IAAA,EAAA,CAAG,UAAU,WAAA,GAAc,EAAA;AAC3B,IAAA,EAAA,CAAG,QAAQ,QAAA,GAAW,IAAA;AACtB,IAAA,EAAA,CAAG,UAAU,QAAA,GAAW,IAAA;AAAA,EAC1B;AACF","file":"main-SWHHYTLM.js","sourcesContent":["const STORAGE_KEY = \"studio.grid\";\nconst SIZE_KEY = \"studio.gridSize\";\nconst DEFAULT_SIZE = 10;\n\nlet gridEnabled = false;\nlet gridSize = DEFAULT_SIZE;\nconst listeners = new Set<() => void>();\n\nexport function initGrid(): void {\n try {\n gridEnabled = localStorage.getItem(STORAGE_KEY) === \"1\";\n const raw = Number(localStorage.getItem(SIZE_KEY));\n if (Number.isFinite(raw) && raw > 0) gridSize = raw;\n } catch {\n return;\n }\n}\n\nexport function isGridEnabled(): boolean {\n return gridEnabled;\n}\n\nexport function getGridSize(): number {\n return gridSize;\n}\n\nexport function setGridEnabled(on: boolean): void {\n if (gridEnabled === on) return;\n gridEnabled = on;\n try {\n localStorage.setItem(STORAGE_KEY, on ? \"1\" : \"0\");\n } catch {\n return;\n }\n for (const fn of listeners) fn();\n}\n\nexport function subscribeGrid(fn: () => void): () => void {\n listeners.add(fn);\n return () => listeners.delete(fn);\n}\n\nexport function snap(value: number): number {\n if (!gridEnabled) return value;\n return Math.round(value / gridSize) * gridSize;\n}\n\nexport function snapPoint(pt: { x: number; y: number }): {\n x: number;\n y: number;\n} {\n if (!gridEnabled) return pt;\n return { x: snap(pt.x), y: snap(pt.y) };\n}\n","import type {\n AnimationElement,\n Anchor,\n ArrowElement,\n LineElement,\n SnapshotMap,\n} from \"@kokoa/clotho\";\n\nexport const SVG_NS = \"http://www.w3.org/2000/svg\";\n\nexport function escapeXml(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\");\n}\n\nexport function cssAttrEscape(s: string): string {\n return s.replace(/[\"\\\\]/g, (m) => `\\\\${m}`);\n}\n\nexport function centerOfElement(\n baseEl: AnimationElement,\n state: Record<string, unknown>,\n): { x: number; y: number } | null {\n if (baseEl.type === \"rect\" || baseEl.type === \"image\") {\n return {\n x: (state.x as number) + (state.width as number) / 2,\n y: (state.y as number) + (state.height as number) / 2,\n };\n }\n if (baseEl.type === \"circle\")\n return { x: state.cx as number, y: state.cy as number };\n if (baseEl.type === \"text\")\n return { x: state.x as number, y: state.y as number };\n if (baseEl.type === \"polygon\") {\n const bbox = polygonBoundingBox(String(state.points ?? \"\"));\n if (bbox) return { x: bbox.x + bbox.w / 2, y: bbox.y + bbox.h / 2 };\n }\n if (baseEl.type === \"path\") {\n // Use x,y position as center for paths\n const x = state.x as number;\n const y = state.y as number;\n if (Number.isFinite(x) && Number.isFinite(y)) return { x, y };\n }\n return null;\n}\n\nexport function anchorPointsOf(\n baseEl: AnimationElement,\n state: Record<string, unknown>,\n): { x: number; y: number; anchor: Anchor }[] {\n if (baseEl.type === \"rect\" || baseEl.type === \"image\") {\n const x = state.x as number;\n const y = state.y as number;\n const w = state.width as number;\n const h = state.height as number;\n return [\n { x: x + w / 2, y, anchor: \"top\" },\n { x: x + w, y: y + h / 2, anchor: \"right\" },\n { x: x + w / 2, y: y + h, anchor: \"bottom\" },\n { x, y: y + h / 2, anchor: \"left\" },\n ];\n }\n if (baseEl.type === \"circle\") {\n const cx = state.cx as number;\n const cy = state.cy as number;\n const r = state.r as number;\n return [\n { x: cx, y: cy - r, anchor: \"top\" },\n { x: cx + r, y: cy, anchor: \"right\" },\n { x: cx, y: cy + r, anchor: \"bottom\" },\n { x: cx - r, y: cy, anchor: \"left\" },\n ];\n }\n return [];\n}\n\nexport function anchorPointOf(\n el: AnimationElement,\n state: Record<string, unknown>,\n anchor: Anchor,\n): { x: number; y: number } | null {\n if (el.type === \"rect\" || el.type === \"image\") {\n const x = state.x as number;\n const y = state.y as number;\n const w = state.width as number;\n const h = state.height as number;\n const cx = x + w / 2;\n const cy = y + h / 2;\n switch (anchor) {\n case \"top\":\n return { x: cx, y };\n case \"right\":\n return { x: x + w, y: cy };\n case \"bottom\":\n return { x: cx, y: y + h };\n case \"left\":\n return { x, y: cy };\n case \"center\":\n case \"auto\":\n default:\n return { x: cx, y: cy };\n }\n }\n if (el.type === \"circle\") {\n const cx = state.cx as number;\n const cy = state.cy as number;\n const r = state.r as number;\n switch (anchor) {\n case \"top\":\n return { x: cx, y: cy - r };\n case \"right\":\n return { x: cx + r, y: cy };\n case \"bottom\":\n return { x: cx, y: cy + r };\n case \"left\":\n return { x: cx - r, y: cy };\n default:\n return { x: cx, y: cy };\n }\n }\n if (el.type === \"text\") return { x: state.x as number, y: state.y as number };\n return null;\n}\n\nexport function pickAutoAnchorTowardPoint(\n el: AnimationElement,\n state: Record<string, unknown>,\n point: { x: number; y: number },\n): Anchor {\n const candidates: Anchor[] = [\"top\", \"right\", \"bottom\", \"left\"];\n let best: Anchor = \"right\";\n let bestDist = Infinity;\n for (const a of candidates) {\n const p = anchorPointOf(el, state, a);\n if (!p) continue;\n const d = Math.hypot(p.x - point.x, p.y - point.y);\n if (d < bestDist) {\n bestDist = d;\n best = a;\n }\n }\n return best;\n}\n\nexport function pickAutoAnchorPair(\n fromEl: AnimationElement,\n fromState: Record<string, unknown>,\n toEl: AnimationElement,\n toState: Record<string, unknown>,\n): { from: Anchor; to: Anchor } {\n const candidates: Anchor[] = [\"top\", \"right\", \"bottom\", \"left\"];\n let bestPair: { from: Anchor; to: Anchor } = { from: \"right\", to: \"left\" };\n let bestDist = Infinity;\n for (const fa of candidates) {\n for (const ta of candidates) {\n const fp = anchorPointOf(fromEl, fromState, fa);\n const tp = anchorPointOf(toEl, toState, ta);\n if (!fp || !tp) continue;\n const d = Math.hypot(tp.x - fp.x, tp.y - fp.y);\n if (d < bestDist) {\n bestDist = d;\n bestPair = { from: fa, to: ta };\n }\n }\n }\n return bestPair;\n}\n\nexport function firstPolygonPoint(\n points: string,\n): { x: number; y: number } | null {\n const first = points.trim().split(/\\s+/)[0];\n if (!first) return null;\n const [x, y] = first.split(\",\").map(Number);\n if (!Number.isFinite(x) || !Number.isFinite(y)) return null;\n return { x, y };\n}\n\nexport function shiftPolygonPoints(\n points: string,\n dx: number,\n dy: number,\n): string {\n return points\n .trim()\n .split(/\\s+/)\n .map((pair) => {\n const [x, y] = pair.split(\",\").map(Number);\n if (Number.isFinite(x) && Number.isFinite(y))\n return `${(x + dx).toFixed(1)},${(y + dy).toFixed(1)}`;\n return pair;\n })\n .join(\" \");\n}\n\nexport function polygonBoundingBox(\n points: string,\n): { x: number; y: number; w: number; h: number } | null {\n let minX = Infinity,\n minY = Infinity,\n maxX = -Infinity,\n maxY = -Infinity;\n let any = false;\n for (const pair of points.trim().split(/\\s+/)) {\n const [x, y] = pair.split(\",\").map(Number);\n if (!Number.isFinite(x) || !Number.isFinite(y)) continue;\n any = true;\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n if (!any) return null;\n return { x: minX, y: minY, w: maxX - minX, h: maxY - minY };\n}\n\nexport function pathBBoxOnCanvas(\n canvasEl: SVGSVGElement | null,\n elementId: string,\n): { x: number; y: number; w: number; h: number } | null {\n if (!canvasEl) return null;\n const g = canvasEl.querySelector<SVGGElement>(\n `[data-elem-id=\"${cssAttrEscape(elementId)}\"]`,\n );\n if (!g) return null;\n try {\n const bbox = g.getBBox();\n return { x: bbox.x, y: bbox.y, w: bbox.width, h: bbox.height };\n } catch {\n return null;\n }\n}\n\nexport function textBBoxOnCanvas(\n canvasEl: SVGSVGElement | null,\n elementId: string,\n): { x: number; y: number; w: number; h: number } | null {\n if (!canvasEl) return null;\n const g = canvasEl.querySelector<SVGGElement>(\n `[data-elem-id=\"${cssAttrEscape(elementId)}\"]`,\n );\n if (!g) return null;\n const textEl = g.querySelector(\"text\");\n if (!textEl) return null;\n try {\n const bbox = textEl.getBBox();\n return { x: bbox.x, y: bbox.y, w: bbox.width, h: bbox.height };\n } catch {\n return null;\n }\n}\n\nexport function resolveArrowCoords(\n a: ArrowElement,\n snap: SnapshotMap,\n byId: Map<string, AnimationElement>,\n): { x1: number; y1: number; x2: number; y2: number } | null {\n const fromFixed =\n typeof a.x1 === \"number\" && typeof a.y1 === \"number\"\n ? { x: a.x1, y: a.y1 }\n : null;\n const toFixed =\n typeof a.x2 === \"number\" && typeof a.y2 === \"number\"\n ? { x: a.x2, y: a.y2 }\n : null;\n const fromEl = a.fromId ? byId.get(a.fromId) : null;\n const toEl = a.toId ? byId.get(a.toId) : null;\n const fromState = a.fromId ? snap.get(a.fromId) : null;\n const toState = a.toId ? snap.get(a.toId) : null;\n const fromConnected = !!(fromEl && fromState);\n const toConnected = !!(toEl && toState);\n\n if (!fromConnected && !fromFixed) return null;\n if (!toConnected && !toFixed) return null;\n\n let fromAnchor: Anchor = a.fromAnchor ?? \"auto\";\n let toAnchor: Anchor = a.toAnchor ?? \"auto\";\n\n let p1: { x: number; y: number } | null = null;\n let p2: { x: number; y: number } | null = null;\n\n if (fromConnected && toConnected) {\n if (fromAnchor === \"auto\" || toAnchor === \"auto\") {\n const picked = pickAutoAnchorPair(fromEl!, fromState!, toEl!, toState!);\n if (fromAnchor === \"auto\") fromAnchor = picked.from;\n if (toAnchor === \"auto\") toAnchor = picked.to;\n }\n p1 = anchorPointOf(fromEl!, fromState!, fromAnchor);\n p2 = anchorPointOf(toEl!, toState!, toAnchor);\n } else if (fromConnected && toFixed) {\n if (fromAnchor === \"auto\")\n fromAnchor = pickAutoAnchorTowardPoint(fromEl!, fromState!, toFixed);\n p1 = anchorPointOf(fromEl!, fromState!, fromAnchor);\n p2 = toFixed;\n } else if (fromFixed && toConnected) {\n if (toAnchor === \"auto\")\n toAnchor = pickAutoAnchorTowardPoint(toEl!, toState!, fromFixed);\n p1 = fromFixed;\n p2 = anchorPointOf(toEl!, toState!, toAnchor);\n } else if (fromFixed && toFixed) {\n p1 = fromFixed;\n p2 = toFixed;\n }\n\n if (!p1 || !p2) return null;\n return { x1: p1.x, y1: p1.y, x2: p2.x, y2: p2.y };\n}\n\nexport function resolveLineCoords(\n l: LineElement,\n snap: SnapshotMap,\n byId: Map<string, AnimationElement>,\n): { x1: number; y1: number; x2: number; y2: number } | null {\n const fromFixed =\n typeof l.x1 === \"number\" && typeof l.y1 === \"number\"\n ? { x: l.x1, y: l.y1 }\n : null;\n const toFixed =\n typeof l.x2 === \"number\" && typeof l.y2 === \"number\"\n ? { x: l.x2, y: l.y2 }\n : null;\n const fromEl = l.fromId ? byId.get(l.fromId) : null;\n const toEl = l.toId ? byId.get(l.toId) : null;\n const fromState = l.fromId ? snap.get(l.fromId) : null;\n const toState = l.toId ? snap.get(l.toId) : null;\n const fromConnected = !!(fromEl && fromState);\n const toConnected = !!(toEl && toState);\n if (!fromConnected && !fromFixed) return null;\n if (!toConnected && !toFixed) return null;\n\n let fromAnchor: Anchor = l.fromAnchor ?? \"auto\";\n let toAnchor: Anchor = l.toAnchor ?? \"auto\";\n\n let p1: { x: number; y: number } | null = null;\n let p2: { x: number; y: number } | null = null;\n\n if (fromConnected && toConnected) {\n if (fromAnchor === \"auto\" || toAnchor === \"auto\") {\n const picked = pickAutoAnchorPair(fromEl!, fromState!, toEl!, toState!);\n if (fromAnchor === \"auto\") fromAnchor = picked.from;\n if (toAnchor === \"auto\") toAnchor = picked.to;\n }\n p1 = anchorPointOf(fromEl!, fromState!, fromAnchor);\n p2 = anchorPointOf(toEl!, toState!, toAnchor);\n } else if (fromConnected && toFixed) {\n if (fromAnchor === \"auto\")\n fromAnchor = pickAutoAnchorTowardPoint(fromEl!, fromState!, toFixed);\n p1 = anchorPointOf(fromEl!, fromState!, fromAnchor);\n p2 = toFixed;\n } else if (fromFixed && toConnected) {\n if (toAnchor === \"auto\")\n toAnchor = pickAutoAnchorTowardPoint(toEl!, toState!, fromFixed);\n p1 = fromFixed;\n p2 = anchorPointOf(toEl!, toState!, toAnchor);\n } else if (fromFixed && toFixed) {\n p1 = fromFixed;\n p2 = toFixed;\n }\n\n if (!p1 || !p2) return null;\n return { x1: p1.x, y1: p1.y, x2: p2.x, y2: p2.y };\n}\n","import type { AnimationElement, Anchor } from \"@kokoa/clotho\";\n\nexport interface AnchorPoint {\n x: number;\n y: number;\n anchor: Anchor;\n elementId: string;\n label: string;\n}\n\n/**\n * Return all snap-able anchor points for the given element based on its type and current visual state.\n */\nexport function getAnchorPoints(\n element: AnimationElement,\n state: Record<string, unknown>,\n): AnchorPoint[] {\n const id = element.id;\n\n switch (element.type) {\n case \"rect\":\n case \"image\": {\n const x = (state.x as number) ?? 0;\n const y = (state.y as number) ?? 0;\n const w = (state.width as number) ?? 0;\n const h = (state.height as number) ?? 0;\n return [\n { x: x + w / 2, y, anchor: \"top\", elementId: id, label: \"top\" },\n {\n x: x + w,\n y: y + h / 2,\n anchor: \"right\",\n elementId: id,\n label: \"right\",\n },\n {\n x: x + w / 2,\n y: y + h,\n anchor: \"bottom\",\n elementId: id,\n label: \"bottom\",\n },\n { x, y: y + h / 2, anchor: \"left\", elementId: id, label: \"left\" },\n { x, y, anchor: \"top-left\", elementId: id, label: \"top-left\" },\n { x: x + w, y, anchor: \"top-right\", elementId: id, label: \"top-right\" },\n {\n x,\n y: y + h,\n anchor: \"bottom-left\",\n elementId: id,\n label: \"bottom-left\",\n },\n {\n x: x + w,\n y: y + h,\n anchor: \"bottom-right\",\n elementId: id,\n label: \"bottom-right\",\n },\n ];\n }\n\n case \"circle\": {\n const cx = (state.cx as number) ?? 0;\n const cy = (state.cy as number) ?? 0;\n const r = (state.r as number) ?? 0;\n return [\n { x: cx, y: cy - r, anchor: \"top\", elementId: id, label: \"top\" },\n { x: cx + r, y: cy, anchor: \"right\", elementId: id, label: \"right\" },\n { x: cx, y: cy + r, anchor: \"bottom\", elementId: id, label: \"bottom\" },\n { x: cx - r, y: cy, anchor: \"left\", elementId: id, label: \"left\" },\n ];\n }\n\n case \"polygon\": {\n const points = parsePolygonPoints((state.points as string) ?? \"\");\n return points.map((pt, i) => ({\n x: pt.x,\n y: pt.y,\n anchor: \"center\" as Anchor,\n elementId: id,\n label: `vertex-${i}`,\n }));\n }\n\n case \"text\": {\n const x = (state.x as number) ?? 0;\n const y = (state.y as number) ?? 0;\n return [{ x, y, anchor: \"center\", elementId: id, label: \"center\" }];\n }\n\n default:\n return [];\n }\n}\n\n/**\n * Find the nearest anchor point within snap distance from the given point.\n * Returns null if no anchor is within range.\n */\nexport function findNearestAnchor(\n point: { x: number; y: number },\n allAnchors: AnchorPoint[],\n snapDistance: number = 12,\n): AnchorPoint | null {\n let best: AnchorPoint | null = null;\n let bestDist = Infinity;\n\n for (const ap of allAnchors) {\n const dx = ap.x - point.x;\n const dy = ap.y - point.y;\n const dist = Math.sqrt(dx * dx + dy * dy);\n if (dist <= snapDistance && dist < bestDist) {\n bestDist = dist;\n best = ap;\n }\n }\n\n return best;\n}\n\n/** Parse an SVG polygon `points` attribute string into an array of {x, y} coordinates. */\nfunction parsePolygonPoints(points: string): { x: number; y: number }[] {\n const result: { x: number; y: number }[] = [];\n const trimmed = points.trim();\n if (!trimmed) return result;\n\n // SVG points format: \"x1,y1 x2,y2 ...\" or \"x1 y1 x2 y2 ...\"\n // Split by commas and/or whitespace to extract all numeric tokens\n const tokens = trimmed.split(/[\\s,]+/).filter(Boolean);\n for (let i = 0; i + 1 < tokens.length; i += 2) {\n const x = parseFloat(tokens[i]);\n const y = parseFloat(tokens[i + 1]);\n if (!isNaN(x) && !isNaN(y)) result.push({ x, y });\n }\n\n return result;\n}\n","import type {\n AnimationElement,\n Anchor,\n ArrowElement,\n LineElement,\n SnapshotMap,\n} from \"@kokoa/clotho\";\nimport {\n SVG_NS,\n escapeXml,\n centerOfElement,\n anchorPointsOf,\n polygonBoundingBox,\n pathBBoxOnCanvas,\n textBBoxOnCanvas,\n resolveLineCoords,\n resolveArrowCoords,\n} from \"./canvas-utils\";\nimport { getAnchorPoints } from \"./anchor-system\";\n\ntype ResizeHandle = \"nw\" | \"n\" | \"ne\" | \"e\" | \"se\" | \"s\" | \"sw\" | \"w\";\n\nexport function renderResizeHandles(\n canvasEl: SVGSVGElement | null,\n elId: string,\n snap: SnapshotMap,\n byId: Map<string, AnimationElement>,\n): SVGElement | null {\n const baseEl = byId.get(elId);\n const state = snap.get(elId);\n if (!baseEl || !state) return null;\n let box: { x: number; y: number; w: number; h: number };\n let handles: ResizeHandle[] = [\"nw\", \"n\", \"ne\", \"e\", \"se\", \"s\", \"sw\", \"w\"];\n if (baseEl.type === \"rect\" || baseEl.type === \"image\") {\n box = {\n x: state.x as number,\n y: state.y as number,\n w: state.width as number,\n h: state.height as number,\n };\n } else if (baseEl.type === \"circle\") {\n const r = state.r as number;\n box = {\n x: (state.cx as number) - r,\n y: (state.cy as number) - r,\n w: r * 2,\n h: r * 2,\n };\n handles = [\"n\", \"e\", \"s\", \"w\"];\n } else if (baseEl.type === \"text\") {\n const bbox = textBBoxOnCanvas(canvasEl, elId);\n if (!bbox) return null;\n box = bbox;\n handles = [\"se\"];\n } else {\n return null;\n }\n const positions: Record<\n ResizeHandle,\n { x: number; y: number; cursor: string }\n > = {\n nw: { x: box.x, y: box.y, cursor: \"nwse-resize\" },\n n: { x: box.x + box.w / 2, y: box.y, cursor: \"ns-resize\" },\n ne: { x: box.x + box.w, y: box.y, cursor: \"nesw-resize\" },\n e: { x: box.x + box.w, y: box.y + box.h / 2, cursor: \"ew-resize\" },\n se: { x: box.x + box.w, y: box.y + box.h, cursor: \"nwse-resize\" },\n s: { x: box.x + box.w / 2, y: box.y + box.h, cursor: \"ns-resize\" },\n sw: { x: box.x, y: box.y + box.h, cursor: \"nesw-resize\" },\n w: { x: box.x, y: box.y + box.h / 2, cursor: \"ew-resize\" },\n };\n const g = document.createElementNS(SVG_NS, \"g\");\n const rotation = (state.rotation as number) || 0;\n if (\n rotation &&\n (baseEl.type === \"rect\" ||\n baseEl.type === \"image\" ||\n baseEl.type === \"circle\")\n ) {\n const cx = box.x + box.w / 2;\n const cy = box.y + box.h / 2;\n g.setAttribute(\"transform\", `rotate(${rotation} ${cx} ${cy})`);\n }\n let html = \"\";\n for (const h of handles) {\n const p = positions[h];\n html += `<rect x=\"${p.x - 5}\" y=\"${p.y - 5}\" width=\"10\" height=\"10\"\n fill=\"white\" stroke=\"var(--color-accent)\" stroke-width=\"2\" rx=\"2\"\n data-resize-handle=\"${h}\" data-elem-id=\"${escapeXml(elId)}\" style=\"cursor: ${p.cursor}\" />`;\n }\n g.innerHTML = html;\n return g;\n}\n\nexport function renderRotationHandle(\n canvasEl: SVGSVGElement | null,\n elId: string,\n snap: SnapshotMap,\n byId: Map<string, AnimationElement>,\n): SVGElement | null {\n const baseEl = byId.get(elId);\n const state = snap.get(elId);\n if (!baseEl || !state) return null;\n const center = centerOfElement(baseEl, state);\n if (!center) return null;\n let topY: number | null = null;\n if (baseEl.type === \"rect\" || baseEl.type === \"image\") {\n topY = (state.y as number) - 24;\n } else if (baseEl.type === \"circle\") {\n topY = (state.cy as number) - (state.r as number) - 24;\n } else if (baseEl.type === \"text\") {\n const bbox = textBBoxOnCanvas(canvasEl, elId);\n if (bbox) topY = bbox.y - 24;\n } else if (baseEl.type === \"polygon\") {\n const bbox = polygonBoundingBox(String(state.points ?? \"\"));\n if (bbox) topY = bbox.y - 24;\n } else if (baseEl.type === \"path\") {\n const bbox = pathBBoxOnCanvas(canvasEl, elId);\n if (bbox) topY = bbox.y - 24;\n }\n if (topY === null) return null;\n\n const g = document.createElementNS(SVG_NS, \"g\");\n const rotation = (state.rotation as number) || 0;\n if (rotation)\n g.setAttribute(\"transform\", `rotate(${rotation} ${center.x} ${center.y})`);\n g.innerHTML = `\n <line x1=\"${center.x}\" y1=\"${center.y}\" x2=\"${center.x}\" y2=\"${topY + 8}\" stroke=\"var(--color-accent)\" stroke-width=\"1.5\" stroke-dasharray=\"3 2\" pointer-events=\"none\" />\n <circle cx=\"${center.x}\" cy=\"${topY}\" r=\"8\" fill=\"var(--color-accent)\" stroke=\"white\" stroke-width=\"2\" data-rotate-handle=\"${escapeXml(elId)}\" style=\"cursor: grab\" />\n <text x=\"${center.x + 14}\" y=\"${topY + 4}\" font-size=\"10\" fill=\"var(--color-accent)\" font-family=\"ui-monospace, monospace\" pointer-events=\"none\">${Math.round(rotation)}°</text>\n `;\n return g;\n}\n\nexport function renderAnchorDots(\n elId: string,\n snap: SnapshotMap,\n byId: Map<string, AnimationElement>,\n): SVGElement | null {\n const baseEl = byId.get(elId);\n const state = snap.get(elId);\n if (!baseEl || !state) return null;\n if (\n baseEl.type !== \"rect\" &&\n baseEl.type !== \"circle\" &&\n baseEl.type !== \"image\"\n )\n return null;\n const points = anchorPointsOf(baseEl, state);\n const g = document.createElementNS(SVG_NS, \"g\");\n for (const p of points) {\n g.innerHTML += `<circle cx=\"${p.x}\" cy=\"${p.y}\" r=\"6\" fill=\"white\" stroke=\"#6366f1\" stroke-width=\"2\"\n data-anchor-handle data-elem-id=\"${escapeXml(elId)}\" data-anchor=\"${p.anchor}\" style=\"cursor: crosshair\" />`;\n }\n return g;\n}\n\nexport function renderLineEndpointHandles(\n elId: string,\n snap: SnapshotMap,\n byId: Map<string, AnimationElement>,\n): SVGElement | null {\n const baseEl = byId.get(elId);\n const state = snap.get(elId);\n if (!baseEl || !state) return null;\n if (baseEl.type !== \"line\" && baseEl.type !== \"arrow\") return null;\n const coords =\n baseEl.type === \"line\"\n ? resolveLineCoords(state as unknown as LineElement, snap, byId)\n : resolveArrowCoords(state as unknown as ArrowElement, snap, byId);\n if (!coords) return null;\n const midX = (coords.x1 + coords.x2) / 2;\n const midY = (coords.y1 + coords.y2) / 2;\n const g = document.createElementNS(SVG_NS, \"g\");\n g.innerHTML = `\n <rect x=\"${coords.x1 - 6}\" y=\"${coords.y1 - 6}\" width=\"12\" height=\"12\" rx=\"2\"\n fill=\"white\" stroke=\"var(--color-accent)\" stroke-width=\"2\"\n data-endpoint-handle=\"start\" data-elem-id=\"${escapeXml(elId)}\" style=\"cursor: grab\" />\n <rect x=\"${coords.x2 - 6}\" y=\"${coords.y2 - 6}\" width=\"12\" height=\"12\" rx=\"2\"\n fill=\"white\" stroke=\"var(--color-accent)\" stroke-width=\"2\"\n data-endpoint-handle=\"end\" data-elem-id=\"${escapeXml(elId)}\" style=\"cursor: grab\" />\n <circle cx=\"${midX}\" cy=\"${midY}\" r=\"6\"\n fill=\"var(--color-accent)\" stroke=\"white\" stroke-width=\"2\"\n data-line-mid-handle data-elem-id=\"${escapeXml(elId)}\" style=\"cursor: move\" />\n `;\n return g;\n}\n\nexport function renderPolygonVertexHandles(\n elId: string,\n snap: SnapshotMap,\n byId: Map<string, AnimationElement>,\n): SVGElement | null {\n const baseEl = byId.get(elId);\n const state = snap.get(elId);\n if (!baseEl || !state) return null;\n if (baseEl.type !== \"polygon\") return null;\n const points = String(state.points ?? \"\")\n .trim()\n .split(/\\s+/);\n const parsed: { x: number; y: number; i: number }[] = [];\n for (let i = 0; i < points.length; i += 1) {\n const [x, y] = points[i].split(\",\").map(Number);\n if (!Number.isFinite(x) || !Number.isFinite(y)) continue;\n parsed.push({ x, y, i });\n }\n const g = document.createElementNS(SVG_NS, \"g\");\n let html = \"\";\n if (parsed.length >= 2) {\n for (let i = 0; i < parsed.length; i += 1) {\n const a = parsed[i];\n const b = parsed[(i + 1) % parsed.length];\n const mx = (a.x + b.x) / 2;\n const my = (a.y + b.y) / 2;\n html += `<g data-vertex-add data-elem-id=\"${escapeXml(elId)}\" data-after-index=\"${a.i}\" style=\"cursor: copy\">\n <circle cx=\"${mx}\" cy=\"${my}\" r=\"6\" fill=\"rgba(99, 102, 241, 0.15)\" stroke=\"var(--color-accent)\" stroke-width=\"1.5\" stroke-dasharray=\"2 2\" />\n <text x=\"${mx}\" y=\"${my + 3}\" text-anchor=\"middle\" font-size=\"10\" fill=\"var(--color-accent)\" font-weight=\"700\" pointer-events=\"none\">+</text>\n </g>`;\n }\n }\n for (const p of parsed) {\n const removable = parsed.length > 3;\n html += `<circle cx=\"${p.x}\" cy=\"${p.y}\" r=\"6\" fill=\"white\" stroke=\"var(--color-accent)\" stroke-width=\"2\"\n data-vertex-handle data-elem-id=\"${escapeXml(elId)}\" data-vertex-index=\"${p.i}\"\n style=\"cursor: grab\" >\n <title>${removable ? \"드래그=이동, 우클릭=삭제\" : \"드래그=이동\"}</title>\n </circle>`;\n }\n g.innerHTML = html;\n return g;\n}\n\nexport function renderSnapTargets(\n draggingElementId: string,\n snap: SnapshotMap,\n byId: Map<string, AnimationElement>,\n activeSnapTarget: { elementId: string; anchor: Anchor } | null,\n): SVGElement | null {\n const g = document.createElementNS(SVG_NS, \"g\");\n let html = \"\";\n for (const baseEl of byId.values()) {\n if (baseEl.id === draggingElementId) continue;\n // Skip lines/arrows, only show snap targets on shapes\n if (baseEl.type === \"line\" || baseEl.type === \"arrow\") continue;\n const state = snap.get(baseEl.id);\n if (!state || !state.visible) continue;\n const points = getAnchorPoints(baseEl, state as Record<string, unknown>);\n for (const p of points) {\n const isActive =\n activeSnapTarget?.elementId === baseEl.id &&\n activeSnapTarget?.anchor === p.anchor;\n if (isActive) {\n // Prominent snap indicator: larger circle with accent fill\n html += `<circle cx=\"${p.x}\" cy=\"${p.y}\" r=\"6\" fill=\"var(--color-accent)\" stroke=\"white\" stroke-width=\"2\" opacity=\"0.85\" pointer-events=\"none\" />`;\n // Outer pulse ring for visual emphasis\n html += `<circle cx=\"${p.x}\" cy=\"${p.y}\" r=\"12\" fill=\"none\" stroke=\"var(--color-accent)\" stroke-width=\"1.5\" opacity=\"0.4\" pointer-events=\"none\" />`;\n } else {\n // Small dot for available snap points\n html += `<circle cx=\"${p.x}\" cy=\"${p.y}\" r=\"3\" fill=\"white\" stroke=\"var(--color-accent)\" stroke-width=\"1.5\" opacity=\"0.5\" pointer-events=\"none\" />`;\n }\n }\n }\n g.innerHTML = html;\n return g;\n}\n\nexport function renderSelectionOutline(\n canvasEl: SVGSVGElement | null,\n elId: string,\n snap: SnapshotMap,\n byId: Map<string, AnimationElement>,\n): SVGElement | null {\n const baseEl = byId.get(elId);\n const state = snap.get(elId);\n if (!baseEl || !state) return null;\n let box: { x: number; y: number; w: number; h: number } | null = null;\n if (baseEl.type === \"rect\" || baseEl.type === \"image\") {\n box = {\n x: (state.x as number) - 4,\n y: (state.y as number) - 4,\n w: (state.width as number) + 8,\n h: (state.height as number) + 8,\n };\n } else if (baseEl.type === \"circle\") {\n const r = state.r as number;\n box = {\n x: (state.cx as number) - r - 4,\n y: (state.cy as number) - r - 4,\n w: r * 2 + 8,\n h: r * 2 + 8,\n };\n } else if (baseEl.type === \"text\") {\n const bbox = textBBoxOnCanvas(canvasEl, elId);\n if (bbox)\n box = { x: bbox.x - 4, y: bbox.y - 4, w: bbox.w + 8, h: bbox.h + 8 };\n } else if (baseEl.type === \"line\" || baseEl.type === \"arrow\") {\n const coords =\n baseEl.type === \"line\"\n ? resolveLineCoords(state as unknown as LineElement, snap, byId)\n : resolveArrowCoords(state as unknown as ArrowElement, snap, byId);\n if (!coords) return null;\n box = {\n x: Math.min(coords.x1, coords.x2) - 4,\n y: Math.min(coords.y1, coords.y2) - 4,\n w: Math.abs(coords.x2 - coords.x1) + 8,\n h: Math.abs(coords.y2 - coords.y1) + 8,\n };\n } else if (baseEl.type === \"polygon\") {\n const bbox = polygonBoundingBox(String(state.points ?? \"\"));\n if (bbox)\n box = { x: bbox.x - 4, y: bbox.y - 4, w: bbox.w + 8, h: bbox.h + 8 };\n } else if (baseEl.type === \"path\") {\n const bbox = pathBBoxOnCanvas(canvasEl, elId);\n if (bbox)\n box = { x: bbox.x - 4, y: bbox.y - 4, w: bbox.w + 8, h: bbox.h + 8 };\n }\n if (!box) return null;\n const rect = document.createElementNS(SVG_NS, \"rect\");\n rect.setAttribute(\"x\", String(box.x));\n rect.setAttribute(\"y\", String(box.y));\n rect.setAttribute(\"width\", String(box.w));\n rect.setAttribute(\"height\", String(box.h));\n rect.classList.add(\"element-selected-outline\");\n return rect;\n}\n","import type { AnimationDocument } from \"@kokoa/clotho\";\n\n// Preview now renders through clotho's DOM adapter rather than a React island.\n//\n// This is the point of the migration for the editor: the preview and the published\n// animation go through the same `buildScene` + `patchScene`, so what the author sees\n// here is what a reader gets. Before, the Studio had its own canvas renderer and the\n// site had another, and the two could disagree.\n\nlet previewRoot: HTMLDivElement | null = null;\nlet previewHandle: { destroy(): void } | null = null;\n\nasync function mountPreview(\n host: HTMLElement,\n doc: AnimationDocument,\n): Promise<void> {\n const { mountStage } = await import(\"@kokoa/clotho/dom\");\n // The stage only, without controls: the Studio has its own timeline and transport.\n previewHandle = mountStage(host, doc, { player: { autoplay: true } });\n}\n\nexport function showPreview(\n canvasEl: SVGSVGElement | null,\n def: AnimationDocument,\n): void {\n if (!canvasEl) return;\n const parent = canvasEl.parentElement;\n if (!parent) return;\n hidePreview(canvasEl);\n canvasEl.style.visibility = \"hidden\";\n previewRoot = document.createElement(\"div\");\n const bg =\n def.canvas.background && def.canvas.background !== \"transparent\"\n ? def.canvas.background\n : \"transparent\";\n previewRoot.style.cssText = `position:absolute;left:0;top:0;width:${def.canvas.width}px;height:${def.canvas.height}px;background:${bg};z-index:2;overflow:hidden;`;\n parent.style.position = \"relative\";\n parent.appendChild(previewRoot);\n void mountPreview(previewRoot, def);\n}\n\nexport function hidePreview(canvasEl: SVGSVGElement | null): void {\n if (canvasEl) canvasEl.style.visibility = \"\";\n // Destroying the handle stops the player's frame loop; without it the preview would\n // keep requesting frames after being detached.\n previewHandle?.destroy();\n previewHandle = null;\n if (previewRoot) {\n previewRoot.remove();\n previewRoot = null;\n }\n}\n","import type {\n AnimationElement,\n ArrowElement,\n CircleElement,\n ImageElement,\n LineElement,\n RectElement,\n SnapshotMap,\n TextElement,\n} from \"@kokoa/clotho\";\nimport {\n getDef,\n getSelection,\n getCurrentSnapshot,\n setSelection,\n updateElementBase,\n setElementValueAtTime,\n addElement,\n uniqueElementId,\n subscribe,\n isElementSelected,\n toggleSelectionFor,\n getSelectedElementIds,\n} from \"./state\";\nimport { snapPoint } from \"./grid\";\nimport type { Anchor } from \"@kokoa/clotho\";\nimport { resolveAsset } from \"@kokoa/clotho\";\nimport {\n findContainingGroup,\n groupBbox,\n isGroup,\n moveGroupBy,\n} from \"./studio-groups\";\nimport {\n SVG_NS,\n escapeXml,\n centerOfElement,\n firstPolygonPoint,\n shiftPolygonPoints,\n textBBoxOnCanvas,\n resolveArrowCoords,\n resolveLineCoords,\n polygonBoundingBox,\n pathBBoxOnCanvas,\n} from \"./canvas-utils\";\nimport { getAnchorPoints, findNearestAnchor } from \"./anchor-system\";\nimport {\n renderResizeHandles,\n renderRotationHandle,\n renderAnchorDots,\n renderLineEndpointHandles,\n renderPolygonVertexHandles,\n renderSnapTargets,\n renderSelectionOutline,\n} from \"./canvas-handles\";\n\ninterface DragExtra {\n id: string;\n startX: number;\n startY: number;\n originalPolygonPoints?: string;\n}\n\ninterface DragState {\n elementId: string;\n startMouseX: number;\n startMouseY: number;\n startElemX: number;\n startElemY: number;\n originalPolygonPoints?: string;\n extras: DragExtra[];\n}\n\ninterface RotateState {\n elementId: string;\n centerX: number;\n centerY: number;\n startAngle: number;\n startRotation: number;\n}\n\ninterface ConnectState {\n fromId: string;\n fromAnchor: import(\"@kokoa/clotho\").Anchor;\n startX: number;\n startY: number;\n currentX: number;\n currentY: number;\n}\n\ninterface EndpointDragState {\n elementId: string;\n end: \"start\" | \"end\";\n currentX: number;\n currentY: number;\n snapTarget: {\n elementId: string;\n anchor: Anchor;\n x: number;\n y: number;\n } | null;\n}\n\nconst SNAP_RADIUS = 12;\n\nconst HEAD_MARKER_DEFS = `\n <marker id=\"studio-h-arrow\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto\">\n <path d=\"M 0 0 L 10 5 L 0 10 z\" fill=\"currentColor\" />\n </marker>\n <marker id=\"studio-h-arrow-start\" viewBox=\"0 0 10 10\" refX=\"1\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\n <path d=\"M 0 0 L 10 5 L 0 10 z\" fill=\"currentColor\" />\n </marker>\n <marker id=\"studio-h-triangle\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto\">\n <path d=\"M 0 0 L 10 5 L 0 10 z\" fill=\"currentColor\" />\n </marker>\n <marker id=\"studio-h-triangle-start\" viewBox=\"0 0 10 10\" refX=\"1\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\n <path d=\"M 0 0 L 10 5 L 0 10 z\" fill=\"currentColor\" />\n </marker>\n <marker id=\"studio-h-triangle-open\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"9\" markerHeight=\"9\" orient=\"auto\">\n <path d=\"M 0 0 L 10 5 L 0 10\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"studio-h-triangle-open-start\" viewBox=\"0 0 10 10\" refX=\"1\" refY=\"5\" markerWidth=\"9\" markerHeight=\"9\" orient=\"auto-start-reverse\">\n <path d=\"M 0 0 L 10 5 L 0 10\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"studio-h-circle\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerWidth=\"6\" markerHeight=\"6\">\n <circle cx=\"5\" cy=\"5\" r=\"4\" fill=\"currentColor\" />\n </marker>\n <marker id=\"studio-h-circle-open\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\">\n <circle cx=\"5\" cy=\"5\" r=\"4\" fill=\"white\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"studio-h-diamond\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\">\n <path d=\"M 0 5 L 5 0 L 10 5 L 5 10 z\" fill=\"currentColor\" />\n </marker>\n <marker id=\"studio-h-diamond-start\" viewBox=\"0 0 10 10\" refX=\"1\" refY=\"5\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto-start-reverse\">\n <path d=\"M 0 5 L 5 0 L 10 5 L 5 10 z\" fill=\"currentColor\" />\n </marker>\n <marker id=\"studio-h-diamond-open\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\">\n <path d=\"M 0 5 L 5 0 L 10 5 L 5 10 z\" fill=\"white\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"studio-h-diamond-open-start\" viewBox=\"0 0 10 10\" refX=\"1\" refY=\"5\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto-start-reverse\">\n <path d=\"M 0 5 L 5 0 L 10 5 L 5 10 z\" fill=\"white\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </marker>\n <marker id=\"studio-h-bar\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerWidth=\"5\" markerHeight=\"10\" orient=\"auto\">\n <rect x=\"4\" y=\"0\" width=\"2\" height=\"10\" fill=\"currentColor\" />\n </marker>\n`;\n\nfunction markerUrlFor(head: string | undefined, end: \"start\" | \"end\"): string {\n if (!head || head === \"none\") return \"\";\n const isOpenCircle = head === \"circle-open\";\n const isCircle = head === \"circle\" || isOpenCircle;\n if (isCircle) return `url(#studio-h-${head})`;\n const idBase = `studio-h-${head}`;\n return end === \"start\" ? `url(#${idBase}-start)` : `url(#${idBase})`;\n}\n\ninterface VertexDragState {\n elementId: string;\n vertexIndex: number;\n originalPoints: string;\n}\n\ntype ResizeHandle = \"nw\" | \"n\" | \"ne\" | \"e\" | \"se\" | \"s\" | \"sw\" | \"w\";\n\ninterface ResizeState {\n elementId: string;\n handle: ResizeHandle;\n startMouseX: number;\n startMouseY: number;\n startX: number;\n startY: number;\n startW: number;\n startH: number;\n startCx?: number;\n startCy?: number;\n startR?: number;\n startFontSize?: number;\n aspect: number;\n}\n\ninterface MarqueeState {\n startX: number;\n startY: number;\n currentX: number;\n currentY: number;\n}\n\nlet dragState: DragState | null = null;\nlet rotateState: RotateState | null = null;\nlet connectState: ConnectState | null = null;\nlet endpointDragState: EndpointDragState | null = null;\nlet vertexDragState: VertexDragState | null = null;\nlet resizeState: ResizeState | null = null;\nlet marqueeState: MarqueeState | null = null;\nlet marqueeJustFinished = false;\nlet canvasEl: SVGSVGElement | null = null;\nlet hoveredElementId: string | null = null;\nlet canvasZoom = 1;\n\nexport function initCanvas(root: SVGSVGElement): void {\n canvasEl = root;\n root.addEventListener(\"click\", onCanvasClick);\n root.addEventListener(\"mousedown\", onMouseDown);\n root.addEventListener(\"mouseover\", onMouseOver);\n root.addEventListener(\"mouseleave\", onMouseLeave);\n root.addEventListener(\"contextmenu\", onContextMenu);\n root.addEventListener(\"wheel\", onCanvasWheel, { passive: false });\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n subscribe(render);\n render();\n}\n\nfunction onCanvasWheel(e: WheelEvent): void {\n if (!e.ctrlKey && !e.metaKey) return;\n e.preventDefault();\n const wrap = canvasEl?.closest(\".studio-canvas-wrap\") as HTMLElement | null;\n if (!wrap) {\n canvasZoom = Math.max(\n 0.1,\n Math.min(5, canvasZoom * (e.deltaY < 0 ? 1.1 : 1 / 1.1)),\n );\n render();\n return;\n }\n const wrapRect = wrap.getBoundingClientRect();\n const mxInWrap = e.clientX - wrapRect.left + wrap.scrollLeft;\n const myInWrap = e.clientY - wrapRect.top + wrap.scrollTop;\n const old = canvasZoom;\n canvasZoom = Math.max(\n 0.1,\n Math.min(5, canvasZoom * (e.deltaY < 0 ? 1.1 : 1 / 1.1)),\n );\n const ratio = canvasZoom / old;\n render();\n wrap.scrollLeft = mxInWrap * ratio - (e.clientX - wrapRect.left);\n wrap.scrollTop = myInWrap * ratio - (e.clientY - wrapRect.top);\n}\n\nfunction onContextMenu(e: MouseEvent): void {\n const target = e.target as Element | null;\n const vertexEl = target?.closest<SVGElement>(\"[data-vertex-handle]\");\n if (!vertexEl) return;\n const id = vertexEl.dataset.elemId ?? \"\";\n const idx = Number(vertexEl.dataset.vertexIndex ?? \"-1\");\n const def = getDef();\n if (!def || idx < 0) return;\n const el = def.elements.find((x) => x.id === id);\n if (!el || el.type !== \"polygon\") return;\n const snap = getCurrentSnapshot();\n const state = snap.get(id);\n if (!state) return;\n const points = String(state.points ?? \"\")\n .trim()\n .split(/\\s+/);\n if (points.length <= 3) return;\n e.preventDefault();\n points.splice(idx, 1);\n setElementValueAtTime(id, { points: points.join(\" \") });\n}\n\nfunction onMouseOver(e: MouseEvent): void {\n const id = findElementId(e.target);\n if (id !== hoveredElementId) {\n hoveredElementId = id;\n render();\n }\n}\n\nfunction onMouseLeave(): void {\n if (hoveredElementId !== null) {\n hoveredElementId = null;\n render();\n }\n}\n\nfunction svgPoint(\n clientX: number,\n clientY: number,\n): { x: number; y: number } | null {\n if (!canvasEl) return null;\n const def = getDef();\n if (!def) return null;\n const rect = canvasEl.getBoundingClientRect();\n const sx = def.canvas.width / rect.width;\n const sy = def.canvas.height / rect.height;\n return snapPoint({\n x: (clientX - rect.left) * sx,\n y: (clientY - rect.top) * sy,\n });\n}\n\nfunction findElementId(target: EventTarget | null): string | null {\n let node = target as Element | null;\n while (node && node !== canvasEl) {\n const id = node.getAttribute?.(\"data-elem-id\");\n if (id) return id;\n node = node.parentElement;\n }\n return null;\n}\n\nfunction onCanvasClick(e: MouseEvent): void {\n if (dragState || rotateState || connectState) return;\n if (marqueeJustFinished) {\n marqueeJustFinished = false;\n return;\n }\n const target = e.target as Element | null;\n const addVertexHandle = target?.closest<SVGElement>(\"[data-vertex-add]\");\n if (addVertexHandle) {\n e.preventDefault();\n e.stopPropagation();\n const id = addVertexHandle.dataset.elemId ?? \"\";\n const afterIdx = Number(addVertexHandle.dataset.afterIndex ?? \"-1\");\n const def = getDef();\n if (!def || afterIdx < 0) return;\n const el = def.elements.find((x) => x.id === id);\n if (!el || el.type !== \"polygon\") return;\n const snap = getCurrentSnapshot();\n const state = snap.get(id);\n if (!state) return;\n const points = String(state.points ?? \"\")\n .trim()\n .split(/\\s+/);\n const a = points[afterIdx]?.split(\",\").map(Number) ?? [];\n const b =\n points[(afterIdx + 1) % points.length]?.split(\",\").map(Number) ?? [];\n if (a.length !== 2 || b.length !== 2) return;\n const mx = (a[0] + b[0]) / 2;\n const my = (a[1] + b[1]) / 2;\n points.splice(afterIdx + 1, 0, `${mx.toFixed(1)},${my.toFixed(1)}`);\n setElementValueAtTime(id, { points: points.join(\" \") });\n return;\n }\n if (\n target?.closest(\n \"[data-rotate-handle], [data-anchor-handle], [data-resize-handle]\",\n )\n )\n return;\n const id = findElementId(e.target);\n if (id) {\n const resolvedId = e.altKey ? id : (findContainingGroup(id)?.id ?? id);\n if (e.shiftKey || e.ctrlKey || e.metaKey) {\n setSelection(toggleSelectionFor(getSelection(), resolvedId));\n } else {\n setSelection({ kind: \"element\", elementId: resolvedId });\n }\n } else if (e.target === canvasEl) setSelection({ kind: \"none\" });\n}\n\nfunction onMouseDown(e: MouseEvent): void {\n if (e.button !== 0) return;\n const target = e.target as Element | null;\n const def = getDef();\n if (!def) return;\n\n if (target?.closest<SVGElement>(\"[data-vertex-add]\")) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n const resizeHandle = target?.closest<SVGElement>(\"[data-resize-handle]\");\n if (resizeHandle) {\n e.preventDefault();\n const id = resizeHandle.dataset.elemId ?? \"\";\n const handle = resizeHandle.dataset.resizeHandle as ResizeHandle;\n const snap = getCurrentSnapshot();\n const elState = snap.get(id);\n const baseEl = def.elements.find((x) => x.id === id);\n if (!elState || !baseEl) return;\n const rs: ResizeState = {\n elementId: id,\n handle,\n startMouseX: e.clientX,\n startMouseY: e.clientY,\n startX: 0,\n startY: 0,\n startW: 0,\n startH: 0,\n aspect: 1,\n };\n if (baseEl.type === \"rect\" || baseEl.type === \"image\") {\n rs.startX = elState.x as number;\n rs.startY = elState.y as number;\n rs.startW = elState.width as number;\n rs.startH = elState.height as number;\n rs.aspect = rs.startW / Math.max(1, rs.startH);\n } else if (baseEl.type === \"circle\") {\n rs.startCx = elState.cx as number;\n rs.startCy = elState.cy as number;\n rs.startR = elState.r as number;\n } else if (baseEl.type === \"text\") {\n const bbox = textBBoxOnCanvas(canvasEl, id);\n rs.startX = bbox?.x ?? (elState.x as number);\n rs.startY = bbox?.y ?? (elState.y as number);\n rs.startW = bbox?.w ?? 100;\n rs.startH = bbox?.h ?? (elState.fontSize as number);\n rs.startFontSize = elState.fontSize as number;\n rs.aspect = rs.startW / Math.max(1, rs.startH);\n } else {\n return;\n }\n resizeState = rs;\n setSelection({ kind: \"element\", elementId: id });\n render();\n return;\n }\n\n const vertexHandle = target?.closest<SVGElement>(\"[data-vertex-handle]\");\n if (vertexHandle) {\n e.preventDefault();\n const id = vertexHandle.dataset.elemId ?? \"\";\n const vi = Number(vertexHandle.dataset.vertexIndex ?? \"-1\");\n const snap = getCurrentSnapshot();\n const elState = snap.get(id);\n if (!elState || vi < 0) return;\n vertexDragState = {\n elementId: id,\n vertexIndex: vi,\n originalPoints: String(elState.points ?? \"\"),\n };\n setSelection({ kind: \"element\", elementId: id });\n render();\n return;\n }\n\n const endpointHandle = target?.closest<SVGElement>(\"[data-endpoint-handle]\");\n if (endpointHandle) {\n e.preventDefault();\n const id = endpointHandle.dataset.elemId ?? \"\";\n const end = (\n endpointHandle.dataset.endpointHandle === \"end\" ? \"end\" : \"start\"\n ) as \"start\" | \"end\";\n const pt = svgPoint(e.clientX, e.clientY);\n if (!pt) return;\n endpointDragState = {\n elementId: id,\n end,\n currentX: pt.x,\n currentY: pt.y,\n snapTarget: null,\n };\n setSelection({ kind: \"element\", elementId: id });\n render();\n return;\n }\n\n const midHandle = target?.closest<SVGElement>(\"[data-line-mid-handle]\");\n if (midHandle) {\n e.preventDefault();\n const id = midHandle.dataset.elemId ?? \"\";\n const snap = getCurrentSnapshot();\n const elState = snap.get(id);\n const baseEl = def.elements.find((x) => x.id === id);\n if (!elState || !baseEl) return;\n const anchor = readPositionAnchor(baseEl, elState);\n if (!anchor) return;\n dragState = {\n elementId: id,\n startMouseX: e.clientX,\n startMouseY: e.clientY,\n startElemX: anchor.x,\n startElemY: anchor.y,\n extras: collectDragExtras(id, def, snap),\n };\n if (!isElementSelected(getSelection(), id)) {\n setSelection({ kind: \"element\", elementId: id });\n }\n return;\n }\n\n const rotateHandle = target?.closest<SVGElement>(\"[data-rotate-handle]\");\n if (rotateHandle) {\n e.preventDefault();\n const id = rotateHandle.dataset.rotateHandle ?? \"\";\n const snap = getCurrentSnapshot();\n const state = snap.get(id);\n const baseEl = def.elements.find((x) => x.id === id);\n if (!state || !baseEl) return;\n const center = centerOfElement(baseEl, state);\n if (!center) return;\n const pt = svgPoint(e.clientX, e.clientY);\n if (!pt) return;\n const startAngle =\n (Math.atan2(pt.y - center.y, pt.x - center.x) * 180) / Math.PI;\n rotateState = {\n elementId: id,\n centerX: center.x,\n centerY: center.y,\n startAngle,\n startRotation: (state.rotation as number) || 0,\n };\n return;\n }\n\n const anchorHandle = target?.closest<SVGElement>(\"[data-anchor-handle]\");\n if (anchorHandle) {\n e.preventDefault();\n const fromId = anchorHandle.dataset.elemId ?? \"\";\n const fromAnchor = (anchorHandle.dataset.anchor ?? \"auto\") as Anchor;\n const pt = svgPoint(e.clientX, e.clientY);\n if (!pt) return;\n connectState = {\n fromId,\n fromAnchor,\n startX: Number(anchorHandle.getAttribute(\"cx\")) || pt.x,\n startY: Number(anchorHandle.getAttribute(\"cy\")) || pt.y,\n currentX: pt.x,\n currentY: pt.y,\n };\n render();\n return;\n }\n\n const rawId = findElementId(e.target);\n if (!rawId) {\n // No element hit, start marquee if no shift key\n if (!e.shiftKey && e.target === canvasEl) {\n const pt = svgPoint(e.clientX, e.clientY);\n if (pt) {\n marqueeState = {\n startX: pt.x,\n startY: pt.y,\n currentX: pt.x,\n currentY: pt.y,\n };\n }\n }\n return;\n }\n const id = e.altKey ? rawId : (findContainingGroup(rawId)?.id ?? rawId);\n const snap = getCurrentSnapshot();\n const elState = snap.get(id);\n const baseEl = def.elements.find((x) => x.id === id);\n if (!elState || !baseEl) return;\n if (\n (baseEl.type === \"arrow\" || baseEl.type === \"line\") &&\n baseEl.fromId &&\n baseEl.toId\n ) {\n setSelection({ kind: \"element\", elementId: id });\n return;\n }\n const anchor = readPositionAnchor(baseEl, elState);\n if (!anchor) return;\n dragState = {\n elementId: id,\n startMouseX: e.clientX,\n startMouseY: e.clientY,\n startElemX: anchor.x,\n startElemY: anchor.y,\n originalPolygonPoints:\n baseEl.type === \"polygon\" ? String(elState.points ?? \"\") : undefined,\n extras: collectDragExtras(id, def, snap),\n };\n if (!isElementSelected(getSelection(), id)) {\n setSelection({ kind: \"element\", elementId: id });\n }\n}\n\nfunction collectDragExtras(\n anchorId: string,\n def: ReturnType<typeof getDef>,\n snap: SnapshotMap,\n): DragExtra[] {\n if (!def) return [];\n const sel = getSelection();\n const ids = getSelectedElementIds(sel).filter((id) => id !== anchorId);\n const extras: DragExtra[] = [];\n for (const id of ids) {\n const el = def.elements.find((x) => x.id === id);\n const st = snap.get(id);\n if (!el || !st) continue;\n const a = readPositionAnchor(el, st);\n if (!a) continue;\n extras.push({\n id,\n startX: a.x,\n startY: a.y,\n originalPolygonPoints:\n el.type === \"polygon\" ? String(st.points ?? \"\") : undefined,\n });\n }\n return extras;\n}\n\nfunction onMouseMove(e: MouseEvent): void {\n if (resizeState) {\n handleResizeMove(e);\n return;\n }\n if (vertexDragState) {\n const pt = svgPoint(e.clientX, e.clientY);\n if (!pt) return;\n const pts = vertexDragState.originalPoints.trim().split(/\\s+/);\n if (vertexDragState.vertexIndex < pts.length) {\n pts[vertexDragState.vertexIndex] =\n `${pt.x.toFixed(1)},${pt.y.toFixed(1)}`;\n setElementValueAtTime(vertexDragState.elementId, {\n points: pts.join(\" \"),\n });\n }\n return;\n }\n if (endpointDragState) {\n const pt = svgPoint(e.clientX, e.clientY);\n if (!pt) return;\n endpointDragState.currentX = pt.x;\n endpointDragState.currentY = pt.y;\n endpointDragState.snapTarget = findSnapTarget(\n pt.x,\n pt.y,\n endpointDragState.elementId,\n );\n const def = getDef();\n if (!def) return;\n const baseEl = def.elements.find(\n (x) => x.id === endpointDragState!.elementId,\n );\n if (!baseEl) return;\n const finalX = endpointDragState.snapTarget\n ? endpointDragState.snapTarget.x\n : pt.x;\n const finalY = endpointDragState.snapTarget\n ? endpointDragState.snapTarget.y\n : pt.y;\n if (baseEl.type === \"line\" || baseEl.type === \"arrow\") {\n if (endpointDragState.snapTarget) {\n if (endpointDragState.end === \"start\") {\n setElementValueAtTime(baseEl.id, {\n fromId: endpointDragState.snapTarget.elementId,\n fromAnchor: endpointDragState.snapTarget.anchor,\n x1: undefined,\n y1: undefined,\n });\n } else {\n setElementValueAtTime(baseEl.id, {\n toId: endpointDragState.snapTarget.elementId,\n toAnchor: endpointDragState.snapTarget.anchor,\n x2: undefined,\n y2: undefined,\n });\n }\n } else {\n if (endpointDragState.end === \"start\") {\n updateElementBase(baseEl.id, {\n fromId: undefined,\n fromAnchor: undefined,\n x1: finalX,\n y1: finalY,\n });\n } else {\n updateElementBase(baseEl.id, {\n toId: undefined,\n toAnchor: undefined,\n x2: finalX,\n y2: finalY,\n });\n }\n }\n }\n render();\n return;\n }\n if (rotateState) {\n const pt = svgPoint(e.clientX, e.clientY);\n if (!pt) return;\n const angle =\n (Math.atan2(pt.y - rotateState.centerY, pt.x - rotateState.centerX) *\n 180) /\n Math.PI;\n const delta = angle - rotateState.startAngle;\n setElementValueAtTime(rotateState.elementId, {\n rotation: Math.round((rotateState.startRotation + delta + 360) % 360),\n });\n return;\n }\n if (connectState) {\n const pt = svgPoint(e.clientX, e.clientY);\n if (!pt) return;\n connectState.currentX = pt.x;\n connectState.currentY = pt.y;\n render();\n return;\n }\n if (marqueeState) {\n const pt = svgPoint(e.clientX, e.clientY);\n if (!pt) return;\n marqueeState.currentX = pt.x;\n marqueeState.currentY = pt.y;\n render();\n return;\n }\n if (!dragState || !canvasEl) return;\n const def = getDef();\n if (!def) return;\n const baseEl = def.elements.find((x) => x.id === dragState!.elementId);\n if (!baseEl) return;\n const svgRect = canvasEl.getBoundingClientRect();\n const scaleX = def.canvas.width / svgRect.width;\n const scaleY = def.canvas.height / svgRect.height;\n const dx = (e.clientX - dragState.startMouseX) * scaleX;\n const dy = (e.clientY - dragState.startMouseY) * scaleY;\n const targetX = Math.round(dragState.startElemX + dx);\n const targetY = Math.round(dragState.startElemY + dy);\n const snap = getCurrentSnapshot();\n const elState = snap.get(dragState.elementId);\n if (!elState) return;\n applyMove(baseEl, elState, targetX, targetY);\n for (const extra of dragState.extras) {\n const eEl = def.elements.find((x) => x.id === extra.id);\n const eState = snap.get(extra.id);\n if (!eEl || !eState) continue;\n applyMove(\n eEl,\n eState,\n Math.round(extra.startX + dx),\n Math.round(extra.startY + dy),\n extra.originalPolygonPoints,\n );\n }\n}\n\nfunction onMouseUp(e: MouseEvent): void {\n if (resizeState) {\n resizeState = null;\n render();\n }\n if (vertexDragState) {\n vertexDragState = null;\n render();\n }\n if (endpointDragState) {\n endpointDragState = null;\n render();\n }\n if (connectState) {\n const target = e.target as Element | null;\n const anchorHandle = target?.closest<SVGElement>(\"[data-anchor-handle]\");\n const elemId = anchorHandle?.dataset.elemId ?? findElementId(e.target);\n const toAnchor = (anchorHandle?.dataset.anchor ?? \"auto\") as Anchor;\n if (elemId && elemId !== connectState.fromId) {\n const def = getDef();\n if (def) {\n const newId = uniqueElementId(\"arrow\");\n addElement({\n type: \"arrow\",\n id: newId,\n rotation: 0,\n appearances: [],\n tracks: [],\n fromId: connectState.fromId,\n toId: elemId,\n fromAnchor: connectState.fromAnchor,\n toAnchor,\n stroke: \"#6366f1\",\n strokeWidth: 2,\n curvature: 0,\n labelColor: \"#0b0b0f\",\n labelOffsetX: 0,\n labelOffsetY: 4,\n headStart: \"none\",\n headEnd: \"arrow\",\n });\n }\n }\n connectState = null;\n render();\n }\n if (marqueeState) {\n const mx = Math.min(marqueeState.startX, marqueeState.currentX);\n const my = Math.min(marqueeState.startY, marqueeState.currentY);\n const mw = Math.abs(marqueeState.currentX - marqueeState.startX);\n const mh = Math.abs(marqueeState.currentY - marqueeState.startY);\n marqueeState = null;\n marqueeJustFinished = true;\n\n // Skip selection change if marquee area is zero\n if (mw > 0 && mh > 0) {\n const def = getDef();\n if (def) {\n const snap = getCurrentSnapshot();\n const marqueeBbox = { x: mx, y: my, w: mw, h: mh };\n const matchedIds: string[] = [];\n for (const el of def.elements) {\n const state = snap.get(el.id);\n if (!state) continue;\n const bbox = elementBBox(el, state);\n if (bbox && intersectsMarquee(bbox, marqueeBbox)) {\n matchedIds.push(el.id);\n }\n }\n if (matchedIds.length === 1) {\n setSelection({ kind: \"element\", elementId: matchedIds[0] });\n } else if (matchedIds.length > 1) {\n setSelection({ kind: \"elements\", elementIds: matchedIds });\n } else {\n setSelection({ kind: \"none\" });\n }\n }\n }\n render();\n }\n dragState = null;\n rotateState = null;\n}\n\nfunction applyMove(\n baseEl: AnimationElement,\n state: Record<string, unknown>,\n x: number,\n y: number,\n polygonOriginal?: string,\n): void {\n if (\n baseEl.type === \"rect\" ||\n baseEl.type === \"image\" ||\n baseEl.type === \"text\"\n ) {\n setElementValueAtTime(baseEl.id, { x, y });\n } else if (baseEl.type === \"circle\") {\n setElementValueAtTime(baseEl.id, { cx: x, cy: y });\n } else if (\n (baseEl.type === \"line\" || baseEl.type === \"arrow\") &&\n typeof state.x1 === \"number\" &&\n typeof state.y1 === \"number\" &&\n typeof state.x2 === \"number\" &&\n typeof state.y2 === \"number\"\n ) {\n const dx = x - (state.x1 as number);\n const dy = y - (state.y1 as number);\n setElementValueAtTime(baseEl.id, {\n x1: x,\n y1: y,\n x2: (state.x2 as number) + dx,\n y2: (state.y2 as number) + dy,\n });\n } else if (baseEl.type === \"path\") {\n setElementValueAtTime(baseEl.id, { x, y });\n } else if (baseEl.type === \"polygon\") {\n const orig = polygonOriginal ?? dragState?.originalPolygonPoints;\n if (!orig) return;\n const startFirst = firstPolygonPoint(orig);\n if (!startFirst) return;\n const dx = x - startFirst.x;\n const dy = y - startFirst.y;\n const newPoints = shiftPolygonPoints(orig, dx, dy);\n setElementValueAtTime(baseEl.id, { points: newPoints });\n } else if (baseEl.type === \"group\") {\n const dx = x - baseEl.x;\n const dy = y - baseEl.y;\n moveGroupBy(baseEl.id, dx, dy);\n }\n}\n\nfunction readPositionAnchor(\n baseEl: AnimationElement,\n state: Record<string, unknown>,\n): { x: number; y: number } | null {\n if (\n baseEl.type === \"rect\" ||\n baseEl.type === \"image\" ||\n baseEl.type === \"text\"\n ) {\n return { x: state.x as number, y: state.y as number };\n }\n if (baseEl.type === \"circle\")\n return { x: state.cx as number, y: state.cy as number };\n if (\n (baseEl.type === \"line\" || baseEl.type === \"arrow\") &&\n typeof state.x1 === \"number\"\n ) {\n return { x: state.x1 as number, y: state.y1 as number };\n }\n if (baseEl.type === \"path\")\n return { x: (state.x as number) ?? 0, y: (state.y as number) ?? 0 };\n if (baseEl.type === \"polygon\") {\n const first = firstPolygonPoint(String(state.points ?? \"\"));\n return first;\n }\n if (baseEl.type === \"group\") {\n return { x: baseEl.x, y: baseEl.y };\n }\n return null;\n}\n\n/** Compute the bounding box of an element (no padding) for marquee intersection. */\nfunction elementBBox(\n baseEl: AnimationElement,\n state: Record<string, unknown>,\n): { x: number; y: number; w: number; h: number } | null {\n if (baseEl.type === \"rect\" || baseEl.type === \"image\") {\n return {\n x: state.x as number,\n y: state.y as number,\n w: state.width as number,\n h: state.height as number,\n };\n }\n if (baseEl.type === \"circle\") {\n const r = state.r as number;\n return {\n x: (state.cx as number) - r,\n y: (state.cy as number) - r,\n w: r * 2,\n h: r * 2,\n };\n }\n if (baseEl.type === \"text\") {\n const bbox = textBBoxOnCanvas(canvasEl, baseEl.id);\n if (bbox) return bbox;\n // fallback: approximate\n return {\n x: state.x as number,\n y: state.y as number,\n w: 100,\n h: (state.fontSize as number) ?? 16,\n };\n }\n if (baseEl.type === \"line\" || baseEl.type === \"arrow\") {\n const coords =\n baseEl.type === \"line\"\n ? resolveLineCoords(\n state as unknown as LineElement,\n getCurrentSnapshot(),\n new Map(),\n )\n : resolveArrowCoords(\n state as unknown as ArrowElement,\n getCurrentSnapshot(),\n new Map(),\n );\n if (!coords) return null;\n return {\n x: Math.min(coords.x1, coords.x2),\n y: Math.min(coords.y1, coords.y2),\n w: Math.abs(coords.x2 - coords.x1),\n h: Math.abs(coords.y2 - coords.y1),\n };\n }\n if (baseEl.type === \"polygon\") {\n return polygonBoundingBox(String(state.points ?? \"\"));\n }\n if (baseEl.type === \"path\") {\n return pathBBoxOnCanvas(canvasEl, baseEl.id);\n }\n return null;\n}\n\n/**\n * Test whether an element bounding box intersects a marquee rectangle.\n * Both arguments use `{ x, y, w, h }` format (top-left corner + dimensions).\n *\n * Uses strict AABB overlap (positive intersection area). Edges that only\n * touch (e.g. element.right === marquee.left) are NOT considered intersecting\n * , this matches the standard mathematical definition and the property test\n * `correctly identifies AABB intersection` in `multi-select.test.ts`.\n */\nexport function intersectsMarquee(\n elBbox: { x: number; y: number; w: number; h: number },\n marquee: { x: number; y: number; w: number; h: number },\n): boolean {\n return (\n elBbox.x < marquee.x + marquee.w &&\n elBbox.x + elBbox.w > marquee.x &&\n elBbox.y < marquee.y + marquee.h &&\n elBbox.y + elBbox.h > marquee.y\n );\n}\n\nfunction handleResizeMove(e: MouseEvent): void {\n if (!resizeState || !canvasEl) return;\n const def = getDef();\n if (!def) return;\n const baseEl = def.elements.find((x) => x.id === resizeState!.elementId);\n if (!baseEl) return;\n const rect = canvasEl.getBoundingClientRect();\n const sx = def.canvas.width / rect.width;\n const sy = def.canvas.height / rect.height;\n const dx = (e.clientX - resizeState.startMouseX) * sx;\n const dy = (e.clientY - resizeState.startMouseY) * sy;\n const h = resizeState.handle;\n const uniform = e.shiftKey;\n\n if (baseEl.type === \"rect\" || baseEl.type === \"image\") {\n let newX = resizeState.startX;\n let newY = resizeState.startY;\n let newW = resizeState.startW;\n let newH = resizeState.startH;\n if (h.includes(\"w\")) {\n newX = resizeState.startX + dx;\n newW = resizeState.startW - dx;\n }\n if (h.includes(\"e\")) {\n newW = resizeState.startW + dx;\n }\n if (h.includes(\"n\")) {\n newY = resizeState.startY + dy;\n newH = resizeState.startH - dy;\n }\n if (h.includes(\"s\")) {\n newH = resizeState.startH + dy;\n }\n if (uniform && (h === \"nw\" || h === \"ne\" || h === \"se\" || h === \"sw\")) {\n const aspect = resizeState.aspect;\n const fromW = Math.abs(newW);\n const fromH = Math.abs(newH);\n if (fromW / aspect > fromH) {\n const targetH = Math.max(1, Math.round(fromW / aspect));\n if (h.includes(\"n\"))\n newY = resizeState.startY + resizeState.startH - targetH;\n newH = targetH;\n } else {\n const targetW = Math.max(1, Math.round(fromH * aspect));\n if (h.includes(\"w\"))\n newX = resizeState.startX + resizeState.startW - targetW;\n newW = targetW;\n }\n }\n if (newW < 0) {\n newX = newX + newW;\n newW = -newW;\n }\n if (newH < 0) {\n newY = newY + newH;\n newH = -newH;\n }\n newW = Math.max(2, Math.round(newW));\n newH = Math.max(2, Math.round(newH));\n setElementValueAtTime(baseEl.id, {\n x: Math.round(newX),\n y: Math.round(newY),\n width: newW,\n height: newH,\n });\n return;\n }\n\n if (baseEl.type === \"circle\") {\n const cx = resizeState.startCx ?? 0;\n const cy = resizeState.startCy ?? 0;\n const r0 = resizeState.startR ?? 1;\n let r1: number;\n if (h === \"e\") r1 = Math.max(2, r0 + dx);\n else if (h === \"w\") r1 = Math.max(2, r0 - dx);\n else if (h === \"s\") r1 = Math.max(2, r0 + dy);\n else if (h === \"n\") r1 = Math.max(2, r0 - dy);\n else {\n const ddx = h.includes(\"e\") ? dx : -dx;\n const ddy = h.includes(\"s\") ? dy : -dy;\n const dd = uniform ? Math.max(ddx, ddy) : (ddx + ddy) / 2;\n r1 = Math.max(2, r0 + dd);\n }\n setElementValueAtTime(baseEl.id, { r: Math.round(r1), cx, cy });\n return;\n }\n\n if (baseEl.type === \"text\") {\n const startFs = resizeState.startFontSize ?? 16;\n const startH0 = Math.max(1, resizeState.startH);\n const newH = h.includes(\"n\")\n ? Math.max(1, startH0 - dy)\n : Math.max(1, startH0 + dy);\n const ratio = newH / startH0;\n const newFontSize = Math.max(6, Math.round(startFs * ratio));\n setElementValueAtTime(baseEl.id, { fontSize: newFontSize });\n return;\n }\n}\n\nfunction render(): void {\n if (!canvasEl) return;\n const def = getDef();\n if (!def) {\n canvasEl.innerHTML = \"\";\n canvasEl.removeAttribute(\"viewBox\");\n canvasEl.style.width = \"0\";\n canvasEl.style.height = \"0\";\n return;\n }\n canvasEl.setAttribute(\n \"viewBox\",\n `0 0 ${def.canvas.width} ${def.canvas.height}`,\n );\n canvasEl.style.width = def.canvas.width * canvasZoom + \"px\";\n canvasEl.style.height = def.canvas.height * canvasZoom + \"px\";\n canvasEl.style.backgroundColor = def.canvas.background;\n\n canvasEl.innerHTML = `<defs>${HEAD_MARKER_DEFS}</defs>`;\n\n const snap = getCurrentSnapshot();\n const elementsById = new Map<string, AnimationElement>();\n for (const el of def.elements) elementsById.set(el.id, el);\n\n for (const el of def.elements) {\n const state = snap.get(el.id);\n if (!state) continue;\n const g = renderElement(el, state, snap, elementsById);\n if (g) {\n if (!state.visible) g.setAttribute(\"opacity\", \"0.25\");\n canvasEl.appendChild(g);\n }\n }\n\n const selection = getSelection();\n if (selection.kind === \"element\") {\n const selEl = elementsById.get(selection.elementId);\n if (selEl && isGroup(selEl)) {\n const groupOutline = renderGroupOutline(selection.elementId);\n if (groupOutline) canvasEl.appendChild(groupOutline);\n } else {\n const outline = renderSelectionOutline(\n canvasEl,\n selection.elementId,\n snap,\n elementsById,\n );\n if (outline) canvasEl.appendChild(outline);\n const handle = renderRotationHandle(\n canvasEl,\n selection.elementId,\n snap,\n elementsById,\n );\n if (handle) canvasEl.appendChild(handle);\n const endpoints = renderLineEndpointHandles(\n selection.elementId,\n snap,\n elementsById,\n );\n if (endpoints) canvasEl.appendChild(endpoints);\n const vertices = renderPolygonVertexHandles(\n selection.elementId,\n snap,\n elementsById,\n );\n if (vertices) canvasEl.appendChild(vertices);\n const resize = renderResizeHandles(\n canvasEl,\n selection.elementId,\n snap,\n elementsById,\n );\n if (resize) canvasEl.appendChild(resize);\n }\n } else if (selection.kind === \"elements\") {\n for (const elId of selection.elementIds) {\n const outline = renderSelectionOutline(\n canvasEl,\n elId,\n snap,\n elementsById,\n );\n if (outline) canvasEl.appendChild(outline);\n }\n }\n\n if (endpointDragState) {\n const guides = renderSnapTargets(\n endpointDragState.elementId,\n snap,\n elementsById,\n endpointDragState.snapTarget,\n );\n if (guides) canvasEl.appendChild(guides);\n }\n\n if (\n hoveredElementId &&\n (!connectState || hoveredElementId !== connectState.fromId)\n ) {\n const anchors = renderAnchorDots(hoveredElementId, snap, elementsById);\n if (anchors) canvasEl.appendChild(anchors);\n }\n if (connectState && connectState.fromId !== hoveredElementId) {\n const anchors = renderAnchorDots(connectState.fromId, snap, elementsById);\n if (anchors) canvasEl.appendChild(anchors);\n }\n\n if (connectState) {\n const tempLine = document.createElementNS(SVG_NS, \"line\");\n tempLine.setAttribute(\"x1\", String(connectState.startX));\n tempLine.setAttribute(\"y1\", String(connectState.startY));\n tempLine.setAttribute(\"x2\", String(connectState.currentX));\n tempLine.setAttribute(\"y2\", String(connectState.currentY));\n tempLine.setAttribute(\"stroke\", \"#6366f1\");\n tempLine.setAttribute(\"stroke-width\", \"2\");\n tempLine.setAttribute(\"stroke-dasharray\", \"5 3\");\n tempLine.setAttribute(\"marker-end\", \"url(#studio-arrow)\");\n tempLine.style.pointerEvents = \"none\";\n canvasEl.appendChild(tempLine);\n }\n\n if (marqueeState) {\n const mx = Math.min(marqueeState.startX, marqueeState.currentX);\n const my = Math.min(marqueeState.startY, marqueeState.currentY);\n const mw = Math.abs(marqueeState.currentX - marqueeState.startX);\n const mh = Math.abs(marqueeState.currentY - marqueeState.startY);\n if (mw > 0 || mh > 0) {\n const marqueeRect = document.createElementNS(SVG_NS, \"rect\");\n marqueeRect.setAttribute(\"x\", String(mx));\n marqueeRect.setAttribute(\"y\", String(my));\n marqueeRect.setAttribute(\"width\", String(mw));\n marqueeRect.setAttribute(\"height\", String(mh));\n marqueeRect.setAttribute(\"fill\", \"rgba(99, 102, 241, 0.08)\");\n marqueeRect.setAttribute(\"stroke\", \"#6366f1\");\n marqueeRect.setAttribute(\"stroke-width\", \"1\");\n marqueeRect.setAttribute(\"stroke-dasharray\", \"4 3\");\n marqueeRect.style.pointerEvents = \"none\";\n canvasEl.appendChild(marqueeRect);\n }\n }\n}\n\nfunction findSnapTarget(\n x: number,\n y: number,\n excludeElementId: string,\n): { elementId: string; anchor: Anchor; x: number; y: number } | null {\n const def = getDef();\n if (!def) return null;\n const snap = getCurrentSnapshot();\n\n // Collect anchor points from all elements except the arrow being dragged\n const allAnchors = [];\n for (const baseEl of def.elements) {\n if (baseEl.id === excludeElementId) continue;\n // Skip other lines/arrows, only snap to shapes\n if (baseEl.type === \"line\" || baseEl.type === \"arrow\") continue;\n const state = snap.get(baseEl.id);\n if (!state || !state.visible) continue;\n const points = getAnchorPoints(baseEl, state as Record<string, unknown>);\n allAnchors.push(...points);\n }\n\n const nearest = findNearestAnchor({ x, y }, allAnchors, SNAP_RADIUS);\n if (!nearest) return null;\n return {\n elementId: nearest.elementId,\n anchor: nearest.anchor,\n x: nearest.x,\n y: nearest.y,\n };\n}\n\nfunction renderGroupOutline(groupId: string): SVGElement | null {\n const box = groupBbox(groupId);\n if (!box) return null;\n const g = document.createElementNS(SVG_NS, \"g\");\n g.setAttribute(\"data-elem-id\", groupId);\n const pad = 6;\n const x = box.x - pad;\n const y = box.y - pad;\n const w = box.w + pad * 2;\n const h = box.h + pad * 2;\n const thickness = 8;\n g.innerHTML = `\n <rect x=\"${x}\" y=\"${y}\" width=\"${w}\" height=\"${h}\"\n fill=\"none\" stroke=\"var(--color-accent)\" stroke-width=\"2\" stroke-dasharray=\"6 4\" rx=\"4\" pointer-events=\"none\" />\n <rect x=\"${x - thickness}\" y=\"${y - thickness}\" width=\"${w + thickness * 2}\" height=\"${thickness * 2}\"\n fill=\"rgba(0,0,0,0.0001)\" style=\"cursor: move\" pointer-events=\"all\" />\n <rect x=\"${x - thickness}\" y=\"${y + h - thickness}\" width=\"${w + thickness * 2}\" height=\"${thickness * 2}\"\n fill=\"rgba(0,0,0,0.0001)\" style=\"cursor: move\" pointer-events=\"all\" />\n <rect x=\"${x - thickness}\" y=\"${y}\" width=\"${thickness * 2}\" height=\"${h}\"\n fill=\"rgba(0,0,0,0.0001)\" style=\"cursor: move\" pointer-events=\"all\" />\n <rect x=\"${x + w - thickness}\" y=\"${y}\" width=\"${thickness * 2}\" height=\"${h}\"\n fill=\"rgba(0,0,0,0.0001)\" style=\"cursor: move\" pointer-events=\"all\" />\n `;\n return g;\n}\n\nfunction makeG(\n elementId: string,\n rotation: number,\n cx: number,\n cy: number,\n): SVGGElement {\n const g = document.createElementNS(SVG_NS, \"g\");\n g.setAttribute(\"data-elem-id\", elementId);\n g.classList.add(\"element-handle\");\n if (rotation) g.setAttribute(\"transform\", `rotate(${rotation} ${cx} ${cy})`);\n return g;\n}\n\nfunction renderElement(\n baseEl: AnimationElement,\n state: Record<string, unknown>,\n snap: SnapshotMap,\n byId: Map<string, AnimationElement>,\n): SVGGElement | null {\n const rotation = (state.rotation as number) || 0;\n if (baseEl.type === \"rect\") {\n const r = state as unknown as RectElement;\n const cx = r.x + r.width / 2;\n const cy = r.y + r.height / 2;\n const g = makeG(baseEl.id, rotation, cx, cy);\n g.innerHTML = `\n <rect x=\"${r.x}\" y=\"${r.y}\" width=\"${r.width}\" height=\"${r.height}\" rx=\"${r.cornerRadius}\"\n fill=\"${r.fill}\" stroke=\"${r.stroke}\" stroke-width=\"${r.strokeWidth}\" />\n ${\n r.label\n ? `<text x=\"${cx}\" y=\"${cy + 5}\" text-anchor=\"middle\"\n font-size=\"${r.labelSize}\" font-weight=\"600\" fill=\"${r.labelColor}\">${escapeXml(r.label)}</text>`\n : \"\"\n }\n ${\n r.subtitle\n ? `<text x=\"${cx}\" y=\"${cy + r.labelSize + 8}\"\n text-anchor=\"middle\" font-size=\"10\" fill=\"${r.labelColor}\" opacity=\"0.7\">${escapeXml(r.subtitle)}</text>`\n : \"\"\n }\n `;\n return g;\n }\n if (baseEl.type === \"circle\") {\n const c = state as unknown as CircleElement;\n const g = makeG(baseEl.id, rotation, c.cx, c.cy);\n g.innerHTML = `\n <circle cx=\"${c.cx}\" cy=\"${c.cy}\" r=\"${c.r}\" fill=\"${c.fill}\" stroke=\"${c.stroke}\"\n stroke-width=\"${c.strokeWidth}\" />\n ${\n c.label\n ? `<text x=\"${c.cx}\" y=\"${c.cy + 5}\" text-anchor=\"middle\"\n font-size=\"${c.labelSize}\" font-weight=\"600\" fill=\"${c.labelColor}\">${escapeXml(c.label)}</text>`\n : \"\"\n }\n `;\n return g;\n }\n if (baseEl.type === \"line\") {\n const l = state as unknown as LineElement;\n const coords = resolveLineCoords(l, snap, byId);\n if (!coords) return null;\n const g = makeG(baseEl.id, 0, 0, 0);\n g.style.color = l.stroke;\n const dash = l.strokeDasharray\n ? `stroke-dasharray=\"${l.strokeDasharray}\"`\n : \"\";\n const mStart = markerUrlFor(l.headStart, \"start\");\n const mEnd = markerUrlFor(l.headEnd, \"end\");\n const mAttr = `${mStart ? `marker-start=\"${mStart}\"` : \"\"} ${mEnd ? `marker-end=\"${mEnd}\"` : \"\"}`;\n g.innerHTML = `<line x1=\"${coords.x1}\" y1=\"${coords.y1}\" x2=\"${coords.x2}\" y2=\"${coords.y2}\"\n stroke=\"currentColor\" stroke-width=\"${l.strokeWidth}\" ${dash} ${mAttr} />`;\n return g;\n }\n if (baseEl.type === \"arrow\") {\n const a = state as unknown as ArrowElement;\n const coords = resolveArrowCoords(a, snap, byId);\n if (!coords) return null;\n const g = makeG(baseEl.id, 0, 0, 0);\n g.style.color = a.stroke;\n const dash = a.strokeDasharray\n ? `stroke-dasharray=\"${a.strokeDasharray}\"`\n : \"\";\n const midX = (coords.x1 + coords.x2) / 2;\n const midY = (coords.y1 + coords.y2) / 2;\n const isCurved = (a.curvature || 0) !== 0;\n const mStart = markerUrlFor(a.headStart ?? \"none\", \"start\");\n const mEnd = markerUrlFor(a.headEnd ?? \"arrow\", \"end\");\n const mAttr = `${mStart ? `marker-start=\"${mStart}\"` : \"\"} ${mEnd ? `marker-end=\"${mEnd}\"` : \"\"}`;\n let pathHtml: string;\n if (isCurved) {\n const dx = coords.x2 - coords.x1;\n const dy = coords.y2 - coords.y1;\n const len = Math.hypot(dx, dy) || 1;\n const nx = -dy / len;\n const ny = dx / len;\n const cpx = midX + nx * (a.curvature ?? 0);\n const cpy = midY + ny * (a.curvature ?? 0);\n pathHtml = `<path d=\"M ${coords.x1} ${coords.y1} Q ${cpx} ${cpy} ${coords.x2} ${coords.y2}\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"${a.strokeWidth}\" ${dash} ${mAttr} />`;\n } else {\n pathHtml = `<line x1=\"${coords.x1}\" y1=\"${coords.y1}\" x2=\"${coords.x2}\" y2=\"${coords.y2}\" stroke=\"currentColor\" stroke-width=\"${a.strokeWidth}\" ${dash} ${mAttr} />`;\n }\n g.innerHTML = `\n ${pathHtml}\n ${\n a.label\n ? `<g>\n <rect x=\"${midX - 80}\" y=\"${midY - 11}\" width=\"160\" height=\"22\" rx=\"4\" fill=\"white\" stroke=\"currentColor\" stroke-opacity=\"0.4\"/>\n <text x=\"${midX}\" y=\"${midY + 4}\" text-anchor=\"middle\" font-size=\"12\" font-family=\"ui-monospace, monospace\" fill=\"${a.labelColor}\">${escapeXml(a.label)}</text>\n </g>`\n : \"\"\n }\n `;\n return g;\n }\n if (baseEl.type === \"text\") {\n const t = state as unknown as TextElement;\n const g = makeG(baseEl.id, rotation, t.x, t.y);\n g.innerHTML = `<text x=\"${t.x}\" y=\"${t.y}\" font-size=\"${t.fontSize}\" font-weight=\"${t.fontWeight}\"\n fill=\"${t.color}\" text-anchor=\"${t.textAnchor}\">${escapeXml(t.content)}</text>`;\n return g;\n }\n if (baseEl.type === \"image\") {\n const i = state as unknown as ImageElement;\n const cx = i.x + i.width / 2;\n const cy = i.y + i.height / 2;\n const g = makeG(baseEl.id, rotation, cx, cy);\n // v1 keeps sources in the document's asset registry, so the href is resolved rather\n // than read off the element.\n const resolved = resolveAsset(i.assetId, getDef()?.assets ?? {});\n const href = resolved.status === \"resolved\" ? (resolved.href ?? \"\") : \"\";\n g.innerHTML = href\n ? `<image href=\"${escapeXml(href)}\" x=\"${i.x}\" y=\"${i.y}\" width=\"${i.width}\"\n height=\"${i.height}\" preserveAspectRatio=\"${i.preserveAspectRatio}\" opacity=\"${i.opacity}\" />`\n : `<rect x=\"${i.x}\" y=\"${i.y}\" width=\"${i.width}\" height=\"${i.height}\" fill=\"none\"\n stroke=\"currentColor\" stroke-width=\"1\" stroke-dasharray=\"4 4\" opacity=\"0.4\" />`;\n return g;\n }\n if (baseEl.type === \"path\") {\n const p = state as unknown as import(\"@kokoa/clotho\").PathElement;\n const g = makeG(baseEl.id, rotation, p.x, p.y);\n const dash = p.strokeDasharray\n ? `stroke-dasharray=\"${p.strokeDasharray}\"`\n : \"\";\n const xform = p.x || p.y ? `transform=\"translate(${p.x} ${p.y})\"` : \"\";\n g.innerHTML = `<path d=\"${escapeXml(p.d)}\" fill=\"${p.fill}\" stroke=\"${p.stroke}\" stroke-width=\"${p.strokeWidth}\" ${dash} opacity=\"${p.opacity}\" ${xform} pointer-events=\"all\" />`;\n return g;\n }\n if (baseEl.type === \"polygon\") {\n const pg = state as unknown as import(\"@kokoa/clotho\").PolygonElement;\n const g = makeG(baseEl.id, rotation, 0, 0);\n g.innerHTML = `<polygon points=\"${escapeXml(pg.points)}\" fill=\"${pg.fill}\" stroke=\"${pg.stroke}\" stroke-width=\"${pg.strokeWidth}\" opacity=\"${pg.opacity}\" pointer-events=\"all\" />`;\n return g;\n }\n return null;\n}\n\nimport {\n showPreview as _showPreview,\n hidePreview as _hidePreview,\n} from \"./canvas-preview\";\nexport function showPreview(\n def: import(\"@kokoa/clotho\").AnimationDocument,\n): void {\n _showPreview(canvasEl, def);\n}\nexport function hidePreview(): void {\n _hidePreview(canvasEl);\n}\n","import {\n getDef,\n getSelection,\n setSelection,\n deleteElement,\n subscribe,\n addElement,\n uniqueElementId,\n reorderElement,\n isElementSelected,\n toggleSelectionFor,\n registerExternalAsset,\n} from \"./state\";\nimport type { AnimationElement } from \"@kokoa/clotho\";\nimport { placeholderImageUrl } from \"./host\";\n\nlet listEl: HTMLElement | null = null;\nlet toolsRootEl: HTMLElement | null = null;\nlet searchEl: HTMLInputElement | null = null;\nlet dragSourceId: string | null = null;\n\nexport function initElementList(\n root: HTMLElement,\n toolsRoot: HTMLElement | null,\n): void {\n listEl = root;\n toolsRootEl = toolsRoot;\n searchEl = document.getElementById(\n \"studio-element-search\",\n ) as HTMLInputElement | null;\n subscribe(render);\n root.addEventListener(\"click\", onClick);\n root.addEventListener(\"dragstart\", onDragStart);\n root.addEventListener(\"dragover\", onDragOver);\n root.addEventListener(\"dragleave\", onDragLeave);\n root.addEventListener(\"drop\", onDrop);\n root.addEventListener(\"dragend\", onDragEnd);\n toolsRootEl?.addEventListener(\"click\", onToolsClick);\n searchEl?.addEventListener(\"input\", render);\n searchEl?.addEventListener(\"keydown\", (e) => {\n if (e.key === \"Escape\" && searchEl) {\n searchEl.value = \"\";\n render();\n }\n });\n render();\n}\n\nfunction escapeHtml(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\");\n}\n\nexport function friendlyElementLabel(el: AnimationElement): string {\n const e = el as unknown as {\n name?: string;\n label?: string;\n content?: string;\n };\n const visible = e.name?.trim() || e.label?.trim() || e.content?.trim();\n return visible ? visible : el.id;\n}\n\nfunction matchesSearch(el: AnimationElement, query: string): boolean {\n if (!query) return true;\n const e = el as unknown as {\n name?: string;\n label?: string;\n content?: string;\n };\n const haystack = [el.id, el.type, e.name, e.label, e.content]\n .filter(Boolean)\n .join(\" \")\n .toLowerCase();\n return haystack.includes(query);\n}\n\nfunction render(): void {\n if (!listEl) return;\n const def = getDef();\n if (!def || def.elements.length === 0) {\n listEl.innerHTML =\n '<li style=\"color: var(--color-fg-muted); padding: 0.4rem;\">요소가 없습니다.</li>';\n return;\n }\n const sel = getSelection();\n const query = searchEl?.value.trim().toLowerCase() ?? \"\";\n const allReversed = [...def.elements].reverse();\n const items = query\n ? allReversed.filter((el) => matchesSearch(el, query))\n : allReversed;\n const multiHint =\n sel.kind === \"elements\"\n ? `<div class=\"studio-element-list-hint\">다중 선택: ${sel.elementIds.length}개 (Shift+클릭으로 추가/해제)</div>`\n : \"\";\n const filterHint = query\n ? `<div class=\"studio-element-list-hint\">검색 \"${escapeHtml(query)}\" · ${items.length}/${def.elements.length} 일치 · Esc = 지우기</div>`\n : `<div class=\"studio-element-list-hint\">위 = 앞쪽 (z-index ↑) · Shift+클릭 = 다중 선택</div>`;\n const emptyMsg =\n query && items.length === 0\n ? `<li style=\"color: var(--color-fg-muted); padding: 0.4rem; font-size:0.78rem;\">\"${escapeHtml(query)}\" 일치 없음</li>`\n : \"\";\n listEl.innerHTML =\n filterHint +\n multiHint +\n emptyMsg +\n items\n .map((el) => {\n const isSel = isElementSelected(sel, el.id);\n const label = friendlyElementLabel(el);\n const subId =\n label !== el.id\n ? `<span class=\"studio-element-list-item-sub\">${escapeHtml(el.id)}</span>`\n : \"\";\n return `<li class=\"studio-element-list-item ${isSel ? \"is-selected\" : \"\"}\" data-elem-id=\"${escapeHtml(el.id)}\" draggable=\"true\">\n <span class=\"studio-element-grip\" aria-hidden=\"true\">⋮⋮</span>\n <span class=\"studio-element-list-item-label\">${escapeHtml(label)} <span class=\"studio-element-list-item-type\">${escapeHtml(el.type)}</span>${subId}</span>\n <button type=\"button\" class=\"studio-element-list-delete\" data-delete title=\"삭제\">✕</button>\n </li>`;\n })\n .join(\"\");\n}\n\nfunction onClick(e: Event): void {\n const target = e.target as HTMLElement;\n const li = target.closest<HTMLElement>(\".studio-element-list-item\");\n if (!li) return;\n const id = li.dataset.elemId ?? \"\";\n if (target.closest(\"[data-delete]\")) {\n deleteElement(id);\n return;\n }\n const me = e as MouseEvent;\n if (me.shiftKey || me.ctrlKey || me.metaKey) {\n const sel = getSelection();\n setSelection(toggleSelectionFor(sel, id));\n return;\n }\n setSelection({ kind: \"element\", elementId: id });\n}\n\nfunction onDragStart(e: DragEvent): void {\n const li = (e.target as HTMLElement).closest<HTMLElement>(\n \".studio-element-list-item\",\n );\n if (!li) return;\n dragSourceId = li.dataset.elemId ?? null;\n if (e.dataTransfer) {\n e.dataTransfer.effectAllowed = \"move\";\n e.dataTransfer.setData(\"text/plain\", dragSourceId ?? \"\");\n }\n li.classList.add(\"is-dragging\");\n}\n\nfunction onDragOver(e: DragEvent): void {\n if (!dragSourceId) return;\n e.preventDefault();\n if (e.dataTransfer) e.dataTransfer.dropEffect = \"move\";\n const li = (e.target as HTMLElement).closest<HTMLElement>(\n \".studio-element-list-item\",\n );\n listEl\n ?.querySelectorAll(\".is-drop-above, .is-drop-below\")\n .forEach((n) => n.classList.remove(\"is-drop-above\", \"is-drop-below\"));\n if (!li) return;\n const rect = li.getBoundingClientRect();\n const upper = e.clientY < rect.top + rect.height / 2;\n li.classList.add(upper ? \"is-drop-above\" : \"is-drop-below\");\n}\n\nfunction onDragLeave(e: DragEvent): void {\n const li = (e.target as HTMLElement).closest<HTMLElement>(\n \".studio-element-list-item\",\n );\n li?.classList.remove(\"is-drop-above\", \"is-drop-below\");\n}\n\nfunction onDrop(e: DragEvent): void {\n if (!dragSourceId) return;\n e.preventDefault();\n const li = (e.target as HTMLElement).closest<HTMLElement>(\n \".studio-element-list-item\",\n );\n if (!li) return;\n const targetId = li.dataset.elemId ?? \"\";\n if (!targetId || targetId === dragSourceId) return;\n const rect = li.getBoundingClientRect();\n const upper = e.clientY < rect.top + rect.height / 2;\n const positionInVisualList: \"before\" | \"after\" = upper ? \"before\" : \"after\";\n const positionInDefArray: \"before\" | \"after\" =\n positionInVisualList === \"before\" ? \"after\" : \"before\";\n reorderElement(dragSourceId, targetId, positionInDefArray);\n dragSourceId = null;\n}\n\nfunction onDragEnd(): void {\n dragSourceId = null;\n listEl\n ?.querySelectorAll(\".is-drop-above, .is-drop-below, .is-dragging\")\n .forEach((n) =>\n n.classList.remove(\"is-drop-above\", \"is-drop-below\", \"is-dragging\"),\n );\n}\n\nfunction onToolsClick(e: Event): void {\n const target = e.target as HTMLElement;\n const btn = target.closest<HTMLElement>(\"[data-add-element]\");\n if (!btn) return;\n const type = btn.dataset.addElement;\n if (!type) return;\n const def = getDef();\n if (!def) return;\n const cx = def.canvas.width / 2;\n const cy = def.canvas.height / 2;\n const id = uniqueElementId(type);\n const elem = makeDefaultElement(type, id, cx, cy);\n if (elem) addElement(elem);\n}\n\nfunction makeDefaultElement(\n type: string,\n id: string,\n cx: number,\n cy: number,\n): AnimationElement | null {\n switch (type) {\n case \"rect\":\n return {\n type: \"rect\",\n id,\n rotation: 0,\n appearances: [],\n tracks: [],\n x: cx - 60,\n y: cy - 30,\n width: 120,\n height: 60,\n fill: \"#a5b4fc\",\n stroke: \"#6366f1\",\n strokeWidth: 1.5,\n cornerRadius: 8,\n label: id,\n labelColor: \"#0b0b0f\",\n labelSize: 14,\n };\n case \"circle\":\n return {\n type: \"circle\",\n id,\n rotation: 0,\n appearances: [],\n tracks: [],\n cx,\n cy,\n r: 36,\n fill: \"#a5b4fc\",\n stroke: \"#6366f1\",\n strokeWidth: 1.5,\n label: id,\n labelColor: \"#0b0b0f\",\n labelSize: 14,\n };\n case \"line\":\n return {\n type: \"line\",\n id,\n rotation: 0,\n appearances: [],\n tracks: [],\n x1: cx - 80,\n y1: cy,\n x2: cx + 80,\n y2: cy,\n stroke: \"#6366f1\",\n strokeWidth: 2,\n headStart: \"none\",\n headEnd: \"none\",\n };\n case \"arrow\":\n return {\n type: \"arrow\",\n id,\n rotation: 0,\n appearances: [],\n tracks: [],\n x1: cx - 100,\n y1: cy,\n x2: cx + 100,\n y2: cy,\n stroke: \"#6366f1\",\n strokeWidth: 2,\n curvature: 0,\n labelColor: \"#0b0b0f\",\n labelOffsetX: 0,\n labelOffsetY: 4,\n headStart: \"none\",\n headEnd: \"arrow\",\n };\n case \"text\":\n return {\n type: \"text\",\n id,\n rotation: 0,\n appearances: [],\n tracks: [],\n x: cx,\n y: cy,\n content: id,\n fontSize: 18,\n fontWeight: 400,\n color: \"#18181b\",\n textAnchor: \"middle\",\n };\n case \"image\":\n return {\n type: \"image\",\n id,\n rotation: 0,\n appearances: [],\n tracks: [],\n x: cx - 50,\n y: cy - 50,\n width: 100,\n height: 100,\n assetId: registerExternalAsset(placeholderImageUrl()),\n preserveAspectRatio: \"xMidYMid meet\",\n opacity: 1,\n };\n case \"path\":\n return {\n type: \"path\",\n id,\n rotation: 0,\n appearances: [],\n tracks: [],\n x: cx - 40,\n y: cy - 40,\n d: \"M 0 0 L 80 0 L 40 80 Z\",\n fill: \"#a5b4fc\",\n stroke: \"#6366f1\",\n strokeWidth: 2,\n opacity: 1,\n };\n case \"polygon\": {\n const r = 40;\n const sides = 6;\n const pts = Array.from({ length: sides }, (_, i) => {\n const a = (i * Math.PI * 2) / sides - Math.PI / 2;\n return `${(cx + r * Math.cos(a)).toFixed(1)},${(cy + r * Math.sin(a)).toFixed(1)}`;\n }).join(\" \");\n return {\n type: \"polygon\",\n id,\n rotation: 0,\n appearances: [],\n tracks: [],\n points: pts,\n fill: \"#a5b4fc\",\n stroke: \"#6366f1\",\n strokeWidth: 1.5,\n opacity: 1,\n };\n }\n default:\n return null;\n }\n}\n","/**\n * Focus capture / restore for panels that rebuild their DOM via innerHTML on\n * every state change. Without this, typing a character into an input fires a\n * state update → subscribe() → render() → innerHTML rewrite → the focused\n * input is destroyed mid-keystroke and focus is lost.\n *\n * Usage:\n *\n * function render(): void {\n * if (!panelEl) return;\n * const snap = captureFocusWithin(panelEl);\n * renderInner(); // existing innerHTML-rewriting body\n * restoreFocusWithin(panelEl, snap);\n * }\n *\n * The snapshot is keyed on a stable attribute (preferring `data-prop-key`,\n * falling back to `id`). Inputs that share the same `data-prop-key` are\n * disambiguated by `type` (e.g. color field has two inputs: type=\"color\"\n * and type=\"text\").\n */\n\nexport interface FocusSnapshot {\n selector: string;\n selectionStart: number | null;\n selectionEnd: number | null;\n}\n\nexport function captureFocusWithin(root: HTMLElement): FocusSnapshot | null {\n const active = document.activeElement;\n if (!(active instanceof HTMLElement) || !root.contains(active)) return null;\n const selector = focusSelectorFor(active);\n if (!selector) return null;\n let selectionStart: number | null = null;\n let selectionEnd: number | null = null;\n if (\n active instanceof HTMLInputElement ||\n active instanceof HTMLTextAreaElement\n ) {\n // selectionStart / setSelectionRange throw DOMException on input\n // types color / number / range / date / etc.; null means \"skip caret restore\".\n try {\n selectionStart = active.selectionStart;\n selectionEnd = active.selectionEnd;\n } catch {\n /* see note above */\n }\n }\n return { selector, selectionStart, selectionEnd };\n}\n\nexport function restoreFocusWithin(\n root: HTMLElement,\n snap: FocusSnapshot | null,\n): void {\n if (!snap) return;\n let target: HTMLElement | null;\n try {\n target = root.querySelector<HTMLElement>(snap.selector);\n } catch {\n return;\n }\n if (!target) return;\n try {\n target.focus({ preventScroll: true });\n } catch {\n return;\n }\n if (\n (target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement) &&\n snap.selectionStart !== null &&\n snap.selectionEnd !== null\n ) {\n try {\n target.setSelectionRange(snap.selectionStart, snap.selectionEnd);\n } catch {\n /* same DOMException as capture above */\n }\n }\n}\n\nfunction focusSelectorFor(el: HTMLElement): string | null {\n const propKey = el.dataset.propKey;\n if (propKey !== undefined) {\n const tag = el.tagName.toLowerCase();\n const type = el instanceof HTMLInputElement ? el.type : \"\";\n const keyEsc = cssEscape(propKey);\n if (type)\n return `${tag}[type=\"${cssEscape(type)}\"][data-prop-key=\"${keyEsc}\"]`;\n return `${tag}[data-prop-key=\"${keyEsc}\"]`;\n }\n if (el.id) return `#${cssEscape(el.id)}`;\n return null;\n}\n\nfunction cssEscape(s: string): string {\n const fn = (globalThis as { CSS?: { escape?: (s: string) => string } }).CSS\n ?.escape;\n if (typeof fn === \"function\") return fn(s);\n // Fallback escape (sufficient for our keys, alphanumerics + dots + dashes).\n return s.replace(/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g, \"\\\\$&\");\n}\n","import type { AnimationElement } from \"@kokoa/clotho\";\nimport {\n getDef,\n getSelection,\n getSelectedElementIds,\n updateElementBase,\n} from \"./state\";\n\nexport type AlignKind =\n \"left\" | \"center-h\" | \"right\" | \"top\" | \"middle-v\" | \"bottom\";\nexport type DistributeKind = \"horizontal\" | \"vertical\";\n\ninterface Bbox {\n x: number;\n y: number;\n w: number;\n h: number;\n}\n\nfunction elementBbox(el: AnimationElement): Bbox | null {\n if (el.type === \"rect\" || el.type === \"image\")\n return { x: el.x, y: el.y, w: el.width, h: el.height };\n if (el.type === \"circle\")\n return { x: el.cx - el.r, y: el.cy - el.r, w: el.r * 2, h: el.r * 2 };\n if (el.type === \"text\")\n return {\n x: el.x - 40,\n y: el.y - (el.fontSize ?? 16),\n w: 80,\n h: el.fontSize ?? 16,\n };\n if (el.type === \"line\" || el.type === \"arrow\") {\n if (\n typeof el.x1 !== \"number\" ||\n typeof el.x2 !== \"number\" ||\n typeof el.y1 !== \"number\" ||\n typeof el.y2 !== \"number\"\n )\n return null;\n return {\n x: Math.min(el.x1, el.x2),\n y: Math.min(el.y1, el.y2),\n w: Math.abs(el.x2 - el.x1),\n h: Math.abs(el.y2 - el.y1),\n };\n }\n if (el.type === \"polygon\") {\n let minX = Infinity,\n minY = Infinity,\n maxX = -Infinity,\n maxY = -Infinity;\n let any = false;\n for (const pair of el.points.trim().split(/\\s+/)) {\n const [x, y] = pair.split(\",\").map(Number);\n if (!Number.isFinite(x) || !Number.isFinite(y)) continue;\n any = true;\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n return any ? { x: minX, y: minY, w: maxX - minX, h: maxY - minY } : null;\n }\n if (el.type === \"path\") return { x: el.x ?? 0, y: el.y ?? 0, w: 60, h: 60 };\n return null;\n}\n\nfunction shiftBy(el: AnimationElement, dx: number, dy: number): void {\n if (dx === 0 && dy === 0) return;\n if (el.type === \"rect\" || el.type === \"image\" || el.type === \"text\") {\n updateElementBase(el.id, { x: el.x + dx, y: el.y + dy });\n } else if (el.type === \"circle\") {\n updateElementBase(el.id, { cx: el.cx + dx, cy: el.cy + dy });\n } else if (el.type === \"line\" || el.type === \"arrow\") {\n const patch: Record<string, unknown> = {};\n if (typeof el.x1 === \"number\") patch.x1 = el.x1 + dx;\n if (typeof el.y1 === \"number\") patch.y1 = el.y1 + dy;\n if (typeof el.x2 === \"number\") patch.x2 = el.x2 + dx;\n if (typeof el.y2 === \"number\") patch.y2 = el.y2 + dy;\n updateElementBase(el.id, patch);\n } else if (el.type === \"path\") {\n updateElementBase(el.id, { x: (el.x ?? 0) + dx, y: (el.y ?? 0) + dy });\n } else if (el.type === \"polygon\") {\n const shifted = el.points\n .trim()\n .split(/\\s+/)\n .map((pair) => {\n const [x, y] = pair.split(\",\").map(Number);\n if (Number.isFinite(x) && Number.isFinite(y))\n return `${(x + dx).toFixed(1)},${(y + dy).toFixed(1)}`;\n return pair;\n })\n .join(\" \");\n updateElementBase(el.id, { points: shifted });\n }\n}\n\nfunction selectedElementsWithBbox(): Array<{\n el: AnimationElement;\n bbox: Bbox;\n}> {\n const def = getDef();\n if (!def) return [];\n const sel = getSelection();\n const ids = getSelectedElementIds(sel);\n if (ids.length < 2) return [];\n const out: Array<{ el: AnimationElement; bbox: Bbox }> = [];\n for (const id of ids) {\n const el = def.elements.find((e) => e.id === id);\n if (!el) continue;\n const bbox = elementBbox(el);\n if (bbox) out.push({ el, bbox });\n }\n return out;\n}\n\nexport function alignSelected(kind: AlignKind): boolean {\n const items = selectedElementsWithBbox();\n if (items.length < 2) return false;\n const xs = items.map((it) => it.bbox.x);\n const ys = items.map((it) => it.bbox.y);\n const rights = items.map((it) => it.bbox.x + it.bbox.w);\n const bottoms = items.map((it) => it.bbox.y + it.bbox.h);\n const left = Math.min(...xs);\n const right = Math.max(...rights);\n const top = Math.min(...ys);\n const bottom = Math.max(...bottoms);\n const centerH = (left + right) / 2;\n const middleV = (top + bottom) / 2;\n for (const { el, bbox } of items) {\n let dx = 0;\n let dy = 0;\n if (kind === \"left\") dx = left - bbox.x;\n else if (kind === \"right\") dx = right - (bbox.x + bbox.w);\n else if (kind === \"center-h\") dx = centerH - (bbox.x + bbox.w / 2);\n else if (kind === \"top\") dy = top - bbox.y;\n else if (kind === \"bottom\") dy = bottom - (bbox.y + bbox.h);\n else if (kind === \"middle-v\") dy = middleV - (bbox.y + bbox.h / 2);\n shiftBy(el, Math.round(dx), Math.round(dy));\n }\n return true;\n}\n\nexport function distributeSelected(kind: DistributeKind): boolean {\n const items = selectedElementsWithBbox();\n if (items.length < 3) return false;\n if (kind === \"horizontal\") {\n items.sort((a, b) => a.bbox.x + a.bbox.w / 2 - (b.bbox.x + b.bbox.w / 2));\n const firstCenter = items[0].bbox.x + items[0].bbox.w / 2;\n const lastCenter =\n items[items.length - 1].bbox.x + items[items.length - 1].bbox.w / 2;\n const step = (lastCenter - firstCenter) / (items.length - 1);\n for (let i = 1; i < items.length - 1; i += 1) {\n const targetCenter = firstCenter + step * i;\n const currentCenter = items[i].bbox.x + items[i].bbox.w / 2;\n shiftBy(items[i].el, Math.round(targetCenter - currentCenter), 0);\n }\n } else {\n items.sort((a, b) => a.bbox.y + a.bbox.h / 2 - (b.bbox.y + b.bbox.h / 2));\n const firstCenter = items[0].bbox.y + items[0].bbox.h / 2;\n const lastCenter =\n items[items.length - 1].bbox.y + items[items.length - 1].bbox.h / 2;\n const step = (lastCenter - firstCenter) / (items.length - 1);\n for (let i = 1; i < items.length - 1; i += 1) {\n const targetCenter = firstCenter + step * i;\n const currentCenter = items[i].bbox.y + items[i].bbox.h / 2;\n shiftBy(items[i].el, 0, Math.round(targetCenter - currentCenter));\n }\n }\n return true;\n}\n","import {\n addAppearance,\n addChapter,\n addEffect,\n deleteChapter,\n deleteEffect,\n getCurrentTime,\n getDef,\n getSelection,\n removeAppearance,\n removeTrack,\n removeTrackKeyframe,\n setCurrentTime,\n setSelection,\n setTrackKeyframe,\n subscribe,\n updateAppearance,\n updateCanvas,\n updateChapter,\n updateDuration,\n updateEffect,\n updateElementBase,\n updateMeta,\n updateSettings,\n uniqueChapterId,\n uniqueEffectId,\n} from \"./state\";\nimport type {\n AnimationDocument,\n AnimationElement,\n AnimationEffect,\n Appearance,\n EntryMode,\n ExitMode,\n} from \"@kokoa/clotho\";\nimport { captureFocusWithin, restoreFocusWithin } from \"./studio-focus\";\nimport {\n alignSelected,\n distributeSelected,\n type AlignKind,\n type DistributeKind,\n} from \"./studio-align\";\nimport { childIdsOf, ungroupElement } from \"./studio-groups\";\n\nlet panelEl: HTMLElement | null = null;\nconst closedSections = new Set<string>();\nlet isComposingFallback = false;\n\nexport function initProperties(root: HTMLElement): void {\n panelEl = root;\n subscribe(render);\n root.addEventListener(\"input\", onInput);\n root.addEventListener(\"change\", onChange);\n root.addEventListener(\"click\", onClick);\n root.addEventListener(\"keydown\", onKeydown);\n root.addEventListener(\"compositionstart\", onCompositionStart);\n root.addEventListener(\"compositionend\", onCompositionEnd);\n root.addEventListener(\"toggle\", onSectionToggle, true);\n root.addEventListener(\"wheel\", onNumberWheel, { passive: false });\n render();\n}\n\nfunction onCompositionStart(): void {\n isComposingFallback = true;\n}\n\nfunction onCompositionEnd(): void {\n isComposingFallback = false;\n}\n\nfunction onKeydown(e: KeyboardEvent): void {\n if (e.key !== \"Enter\") return;\n if (e.isComposing || isComposingFallback) return;\n const target = e.target as HTMLElement;\n if (!(target instanceof HTMLInputElement)) return;\n if (target.type === \"text\" || target.type === \"number\") {\n target.blur();\n }\n}\n\nfunction onSectionToggle(e: Event): void {\n const t = e.target as HTMLElement;\n if (!(t instanceof HTMLDetailsElement)) return;\n const name = t.dataset.section;\n if (!name) return;\n if (t.open) closedSections.delete(name);\n else closedSections.add(name);\n}\n\nfunction onNumberWheel(e: WheelEvent): void {\n const target = e.target;\n if (!(target instanceof HTMLInputElement)) return;\n if (target.type !== \"number\") return;\n if (document.activeElement !== target) return;\n e.preventDefault();\n const step = Number(target.step) || 1;\n const multiplier = e.shiftKey ? 10 : 1;\n const dir = e.deltaY < 0 ? 1 : -1;\n const newVal = (Number(target.value) || 0) + dir * step * multiplier;\n target.value = String(newVal);\n target.dispatchEvent(new Event(\"input\", { bubbles: true }));\n}\n\nfunction section(\n name: string,\n headerInner: string,\n contentInner: string,\n): string {\n const isOpen = !closedSections.has(name);\n return `<details class=\"studio-props-section\" ${isOpen ? \"open\" : \"\"} data-section=\"${escapeHtml(name)}\">\n <summary class=\"studio-props-header studio-props-summary\">${headerInner}</summary>\n <div class=\"studio-props-section-body\">${contentInner}</div>\n </details>`;\n}\n\nfunction render(): void {\n if (!panelEl) return;\n const focusSnap = captureFocusWithin(panelEl);\n renderInner();\n restoreFocusWithin(panelEl, focusSnap);\n}\n\nfunction escapeHtml(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\");\n}\n\nfunction textField(\n label: string,\n key: string,\n value: string | undefined,\n): string {\n return `<label class=\"studio-field\">\n <span>${escapeHtml(label)}</span>\n <input type=\"text\" data-prop-key=\"${escapeHtml(key)}\" value=\"${escapeHtml(value ?? \"\")}\" />\n </label>`;\n}\n\nfunction numberField(\n label: string,\n key: string,\n value: number | undefined,\n step = 1,\n): string {\n return `<label class=\"studio-field\">\n <span>${escapeHtml(label)}</span>\n <input type=\"number\" step=\"${step}\" data-prop-key=\"${escapeHtml(key)}\" value=\"${value ?? 0}\" />\n </label>`;\n}\n\nfunction colorField(\n label: string,\n key: string,\n value: string | undefined,\n): string {\n const v = value ?? \"#000000\";\n return `<label class=\"studio-field studio-field-color\">\n <span>${escapeHtml(label)}</span>\n <input type=\"color\" data-prop-key=\"${escapeHtml(key)}\" value=\"${escapeHtml(v.slice(0, 7))}\" />\n <input type=\"text\" data-prop-key=\"${escapeHtml(key)}\" value=\"${escapeHtml(v)}\" />\n </label>`;\n}\n\nfunction checkboxField(label: string, key: string, value: boolean): string {\n return `<label class=\"studio-field studio-field-checkbox\">\n <input type=\"checkbox\" data-prop-key=\"${escapeHtml(key)}\" ${value ? \"checked\" : \"\"} />\n <span>${escapeHtml(label)}</span>\n </label>`;\n}\n\nfunction selectField(\n label: string,\n key: string,\n value: string,\n options: { value: string; label?: string }[],\n): string {\n return `<label class=\"studio-field\">\n <span>${escapeHtml(label)}</span>\n <select data-prop-key=\"${escapeHtml(key)}\">\n ${options.map((o) => `<option value=\"${escapeHtml(o.value)}\" ${o.value === value ? \"selected\" : \"\"}>${escapeHtml(o.label ?? o.value)}</option>`).join(\"\")}\n </select>\n </label>`;\n}\n\nfunction renderInner(): void {\n if (!panelEl) return;\n const def = getDef();\n const sel = getSelection();\n if (!def) {\n panelEl.innerHTML =\n '<p class=\"studio-props-empty\">애니메이션을 열거나 새로 만드세요.</p>';\n return;\n }\n\n const timeHint = `<span class=\"studio-step-hint\">📍 t = ${getCurrentTime()} ms / ${def.duration} ms</span>`;\n\n if (sel.kind === \"none\") {\n const metaHeader = `<span class=\"studio-props-header-title\">애니메이션 메타</span><span class=\"studio-props-header-type\">${escapeHtml(def.id)}</span>`;\n const metaBody = [\n textField(\"title\", \"meta.title\", def.title),\n textField(\"description\", \"meta.description\", def.description),\n numberField(\"duration (ms)\", \"meta.duration\", def.duration, 100),\n numberField(\"canvas.width\", \"canvas.width\", def.canvas.width),\n numberField(\"canvas.height\", \"canvas.height\", def.canvas.height),\n colorField(\n \"canvas.background\",\n \"canvas.background\",\n def.canvas.background,\n ),\n ].join(\"\");\n const settingsHeader = `<span class=\"studio-props-header-title\">설정</span>`;\n const settingsBody = [\n checkboxField(\"loop\", \"settings.loop\", def.settings.loop),\n checkboxField(\"autoplay\", \"settings.autoplay\", def.settings.autoplay),\n checkboxField(\n \"자막 표시 (caption)\",\n \"settings.showCaption\",\n def.settings.showCaption ?? false,\n ),\n checkboxField(\n \"목차 표시 (chapter list)\",\n \"settings.showChapterList\",\n def.settings.showChapterList ?? false,\n ),\n ].join(\"\");\n panelEl.innerHTML = `\n ${timeHint}\n ${section(\"meta\", metaHeader, metaBody)}\n ${section(\"settings\", settingsHeader, settingsBody)}\n <div class=\"studio-props-header\" style=\"margin-top:0.6rem\"><span class=\"studio-props-header-title\">목차 (${def.chapters.length})</span></div>\n <button type=\"button\" class=\"studio-btn\" data-add-chapter>+ 현재 시간에 chapter 추가</button>\n <div class=\"studio-props-header\" style=\"margin-top:0.6rem\"><span class=\"studio-props-header-title\">효과 (${def.effects.length})</span></div>\n <div class=\"studio-add-effect-bar\">\n <select id=\"studio-new-effect-type\">\n <option value=\"highlight\">highlight</option>\n <option value=\"pulse\">pulse</option>\n <option value=\"flow\">flow</option>\n </select>\n <button type=\"button\" class=\"studio-btn\" data-add-effect>+ 효과</button>\n </div>\n `;\n return;\n }\n\n if (sel.kind === \"elements\") {\n const alignBtn = (kind: string, label: string, title: string): string =>\n `<button type=\"button\" class=\"studio-btn studio-align-btn\" data-align=\"${kind}\" title=\"${escapeHtml(title)}\" aria-label=\"${escapeHtml(title)}\">${label}</button>`;\n const distributeDisabled = sel.elementIds.length < 3 ? \"disabled\" : \"\";\n panelEl.innerHTML = `\n ${timeHint}\n <div class=\"studio-props-header\"><span class=\"studio-props-header-title\">다중 선택</span><span class=\"studio-props-header-type\">${sel.elementIds.length} elements</span></div>\n <p class=\"studio-props-empty\" style=\"margin-bottom:0.4rem\">${sel.elementIds.length}개 element 선택됨.<br/>\n <span style=\"font-size:0.72rem;color:var(--color-fg-muted)\">캔버스 드래그 / 화살표키 = 함께 이동<br/>Delete = 모두 삭제 · ⌘D = 복제<br/>⌘C / ⌘X = 모두 복사 / 잘라내기</span></p>\n <div class=\"studio-align-section\">\n <div class=\"studio-align-title\">정렬</div>\n <div class=\"studio-align-row\">\n ${alignBtn(\"left\", \"⫷\", \"왼쪽 정렬\")}\n ${alignBtn(\"center-h\", \"⊟\", \"가로 중앙\")}\n ${alignBtn(\"right\", \"⫸\", \"오른쪽 정렬\")}\n </div>\n <div class=\"studio-align-row\">\n ${alignBtn(\"top\", \"⫶\", \"위쪽 정렬\")}\n ${alignBtn(\"middle-v\", \"⊟\", \"세로 중앙\")}\n ${alignBtn(\"bottom\", \"⫶\", \"아래쪽 정렬\")}\n </div>\n <div class=\"studio-align-title\" style=\"margin-top:0.5rem\">분포 (≥3개)</div>\n <div class=\"studio-align-row\">\n <button type=\"button\" class=\"studio-btn studio-align-btn\" data-distribute=\"horizontal\" title=\"가로 균등 분포\" ${distributeDisabled}>↔</button>\n <button type=\"button\" class=\"studio-btn studio-align-btn\" data-distribute=\"vertical\" title=\"세로 균등 분포\" ${distributeDisabled}>↕</button>\n </div>\n </div>\n <ul style=\"font-family:var(--font-mono);font-size:0.72rem;color:var(--color-fg-muted);padding-left:1rem;margin:0.6rem 0 0\">\n ${sel.elementIds.map((id) => `<li>${escapeHtml(id)}</li>`).join(\"\")}\n </ul>\n `;\n return;\n }\n\n if (sel.kind === \"element\") {\n const el = def.elements.find((e) => e.id === sel.elementId);\n if (!el) {\n setSelection({ kind: \"none\" });\n return;\n }\n renderElementForm(def, el);\n return;\n }\n\n if (sel.kind === \"chapter\") {\n const ch = def.chapters.find((c) => c.id === sel.chapterId);\n if (!ch) {\n setSelection({ kind: \"none\" });\n return;\n }\n panelEl.innerHTML = `\n ${timeHint}\n <div class=\"studio-props-header\"><span class=\"studio-props-header-title\">${escapeHtml(ch.id)}</span><span class=\"studio-props-header-type\">chapter</span></div>\n ${numberField(\"time (ms)\", \"chapter.time\", ch.time, 50)}\n ${textField(\"label\", \"chapter.label\", ch.label)}\n ${textField(\"subtitle\", \"chapter.subtitle\", ch.subtitle)}\n <button type=\"button\" class=\"studio-btn studio-btn-danger\" data-delete-chapter style=\"margin-top:0.6rem\">🗑 chapter 삭제</button>\n `;\n return;\n }\n\n if (sel.kind === \"effect\") {\n const eff = def.effects.find((e) => e.id === sel.effectId);\n if (!eff) {\n setSelection({ kind: \"none\" });\n return;\n }\n const elemOpts = def.elements\n .map(\n (e) =>\n `<option value=\"${escapeHtml(e.id)}\" ${e.id === eff.elementId ? \"selected\" : \"\"}>${escapeHtml(e.id)}</option>`,\n )\n .join(\"\");\n const typeOpts = ([\"highlight\", \"pulse\", \"flow\"] as const)\n .map(\n (t) =>\n `<option value=\"${t}\" ${t === eff.type ? \"selected\" : \"\"}>${t}</option>`,\n )\n .join(\"\");\n const specific =\n eff.type === \"highlight\"\n ? colorField(\"color\", \"effect.color\", eff.color)\n : eff.type === \"pulse\"\n ? numberField(\"scale\", \"effect.scale\", eff.scale, 0.05)\n : colorField(\"color\", \"effect.color\", eff.color) +\n numberField(\"particles\", \"effect.particles\", eff.particles, 1) +\n numberField(\"radius\", \"effect.radius\", eff.radius, 0.5);\n panelEl.innerHTML = `\n ${timeHint}\n <div class=\"studio-props-header\"><span class=\"studio-props-header-title\">${escapeHtml(eff.id)}</span><span class=\"studio-props-header-type\">effect</span></div>\n <label class=\"studio-field\"><span>type</span><select data-prop-key=\"effect.type\">${typeOpts}</select></label>\n <label class=\"studio-field\"><span>elementId</span><select data-prop-key=\"effect.elementId\">${elemOpts}</select></label>\n ${numberField(\"time (ms)\", \"effect.time\", eff.time, 50)}\n ${numberField(\"duration (ms)\", \"effect.duration\", eff.duration, 50)}\n ${specific}\n <button type=\"button\" class=\"studio-btn studio-btn-danger\" data-delete-effect style=\"margin-top:0.6rem\">🗑 효과 삭제</button>\n `;\n return;\n }\n}\n\nfunction renderElementForm(def: AnimationDocument, el: AnimationElement): void {\n if (!panelEl) return;\n const timeHint = `<span class=\"studio-step-hint\">📍 t = ${getCurrentTime()} ms</span>`;\n\n if (el.type === \"group\") {\n panelEl.innerHTML = `\n ${timeHint}\n <div class=\"studio-props-header\"><span class=\"studio-props-header-title\">${escapeHtml(el.name || el.id)}</span><span class=\"studio-props-header-type\">group · ${childIdsOf(el.id).length} children</span></div>\n ${textField(\"name (별칭)\", \"el.name\", el.name ?? \"\")}\n <div class=\"studio-props-empty\" style=\"font-size:0.72rem;margin:0.4rem 0\">\n 그룹은 자식 요소를 함께 이동합니다.<br/>\n Alt+클릭으로 자식을 직접 선택할 수 있습니다.<br/>\n ⌘⇧G 로 그룹 해제.\n </div>\n <button type=\"button\" class=\"studio-btn studio-btn-danger\" data-ungroup style=\"margin-top:0.4rem\">⬚ 그룹 해제 (⌘⇧G)</button>\n <div class=\"studio-props-header\" style=\"margin-top:0.6rem\"><span class=\"studio-props-header-title\">자식 (${childIdsOf(el.id).length})</span></div>\n <ul style=\"font-family:var(--font-mono);font-size:0.72rem;color:var(--color-fg-muted);padding-left:1rem;margin:0\">\n ${childIdsOf(el.id)\n .map(\n (cid: string) =>\n `<li><a href=\"#\" data-select-child=\"${escapeHtml(cid)}\" style=\"color:inherit\">${escapeHtml(cid)}</a></li>`,\n )\n .join(\"\")}\n </ul>\n `;\n return;\n }\n\n const baseFields = renderBaseFields(el);\n const appearances = renderAppearances(def, el);\n const tracks = renderTracks(el);\n\n const baseHeader = `<span class=\"studio-props-header-title\">${escapeHtml(el.id)}</span><span class=\"studio-props-header-type\">${escapeHtml(el.type)}</span>`;\n const apHeader = `<span class=\"studio-props-header-title\">출현 (Appearances)</span><button type=\"button\" class=\"studio-btn studio-btn-small\" data-add-appearance>+</button>`;\n const tracksHeader = `<span class=\"studio-props-header-title\">키프레임 트랙 (${el.tracks.length})</span>`;\n\n panelEl.innerHTML = `\n ${timeHint}\n ${section(\"el-base\", baseHeader, baseFields)}\n ${section(\"el-appearances\", apHeader, appearances)}\n ${section(\"el-tracks\", tracksHeader, tracks)}\n <div class=\"studio-props-empty\" style=\"font-size:0.72rem;margin-top:0.5rem\">\n base 속성을 변경하면 → t=${getCurrentTime()} ms 에 keyframe 추가<br/>\n 트랙이 없는 속성은 base 값이 항상 사용됨\n </div>\n `;\n}\n\nfunction renderBaseFields(el: AnimationElement): string {\n const numberFields: {\n label: string;\n key: string;\n value: number;\n step?: number;\n }[] = [];\n const colorFields: { label: string; key: string; value: string }[] = [];\n const textFields: { label: string; key: string; value: string }[] = [];\n const e = el as unknown as Record<string, unknown>;\n\n textFields.push({\n label: \"name (별칭)\",\n key: \"name\",\n value: (e.name as string | undefined) ?? \"\",\n });\n\n if (el.type === \"rect\" || el.type === \"image\" || el.type === \"text\") {\n numberFields.push({ label: \"x\", key: \"x\", value: e.x as number });\n numberFields.push({ label: \"y\", key: \"y\", value: e.y as number });\n }\n if (el.type === \"rect\" || el.type === \"image\") {\n numberFields.push({\n label: \"width\",\n key: \"width\",\n value: e.width as number,\n });\n numberFields.push({\n label: \"height\",\n key: \"height\",\n value: e.height as number,\n });\n }\n if (el.type === \"circle\") {\n numberFields.push({ label: \"cx\", key: \"cx\", value: e.cx as number });\n numberFields.push({ label: \"cy\", key: \"cy\", value: e.cy as number });\n numberFields.push({ label: \"r\", key: \"r\", value: e.r as number });\n }\n if (el.type === \"line\" || el.type === \"arrow\") {\n if (typeof e.x1 === \"number\") {\n numberFields.push({ label: \"x1\", key: \"x1\", value: e.x1 as number });\n numberFields.push({ label: \"y1\", key: \"y1\", value: e.y1 as number });\n numberFields.push({ label: \"x2\", key: \"x2\", value: e.x2 as number });\n numberFields.push({ label: \"y2\", key: \"y2\", value: e.y2 as number });\n }\n }\n if (el.type === \"text\") {\n textFields.push({\n label: \"content\",\n key: \"content\",\n value: e.content as string,\n });\n numberFields.push({\n label: \"fontSize\",\n key: \"fontSize\",\n value: e.fontSize as number,\n });\n }\n if (\n el.type === \"rect\" ||\n el.type === \"circle\" ||\n el.type === \"polygon\" ||\n el.type === \"path\"\n ) {\n colorFields.push({ label: \"fill\", key: \"fill\", value: e.fill as string });\n colorFields.push({\n label: \"stroke\",\n key: \"stroke\",\n value: e.stroke as string,\n });\n numberFields.push({\n label: \"strokeWidth\",\n key: \"strokeWidth\",\n value: e.strokeWidth as number,\n step: 0.5,\n });\n }\n if (el.type === \"line\" || el.type === \"arrow\") {\n colorFields.push({\n label: \"stroke\",\n key: \"stroke\",\n value: e.stroke as string,\n });\n numberFields.push({\n label: \"strokeWidth\",\n key: \"strokeWidth\",\n value: e.strokeWidth as number,\n step: 0.5,\n });\n }\n if (el.type === \"rect\" || el.type === \"circle\") {\n if ((e.label as string | undefined) !== undefined) {\n textFields.push({\n label: \"label\",\n key: \"label\",\n value: (e.label as string) ?? \"\",\n });\n colorFields.push({\n label: \"labelColor\",\n key: \"labelColor\",\n value: (e.labelColor as string) ?? \"#000\",\n });\n }\n }\n if (el.type === \"text\") {\n colorFields.push({\n label: \"color\",\n key: \"color\",\n value: e.color as string,\n });\n }\n numberFields.push({\n label: \"rotation\",\n key: \"rotation\",\n value: e.rotation as number,\n step: 5,\n });\n\n const html = [\n ...textFields.map((f) => textField(f.label, `el.${f.key}`, f.value)),\n ...numberFields.map((f) =>\n numberField(f.label, `el.${f.key}`, f.value, f.step),\n ),\n ...colorFields.map((f) => colorField(f.label, `el.${f.key}`, f.value)),\n ];\n return html.join(\"\");\n}\n\nfunction renderAppearances(\n def: AnimationDocument,\n el: AnimationElement,\n): string {\n if (el.appearances.length === 0) {\n return '<p class=\"studio-props-empty\">appearance 없음. 추가하세요.</p>';\n }\n const modes: { value: string; label?: string }[] = [\n { value: \"instant\" },\n { value: \"fade\" },\n { value: \"slide-left\" },\n { value: \"slide-right\" },\n { value: \"slide-up\" },\n { value: \"slide-down\" },\n { value: \"zoom\" },\n { value: \"pop\" },\n ];\n return el.appearances\n .map(\n (ap, idx) => `\n <div class=\"studio-appearance-row\">\n <div class=\"studio-appearance-row-head\">\n <span class=\"studio-appearance-row-title\">#${idx + 1}</span>\n <button type=\"button\" class=\"studio-btn studio-btn-small studio-btn-danger\" data-remove-appearance=\"${idx}\">✕</button>\n </div>\n ${numberField(\"start (ms)\", `ap.${idx}.start`, ap.start, 50)}\n ${numberField(\"end (ms)\", `ap.${idx}.end`, ap.end, 50)}\n ${selectField(\"entry\", `ap.${idx}.entryMode`, ap.entryMode ?? \"instant\", modes)}\n ${numberField(\"entry dur\", `ap.${idx}.entryDuration`, ap.entryDuration, 50)}\n ${selectField(\"exit\", `ap.${idx}.exitMode`, ap.exitMode ?? \"instant\", modes)}\n ${numberField(\"exit dur\", `ap.${idx}.exitDuration`, ap.exitDuration, 50)}\n </div>\n `,\n )\n .join(\"\");\n}\n\nfunction renderTracks(el: AnimationElement): string {\n if (el.tracks.length === 0) {\n return '<p class=\"studio-props-empty\" style=\"font-size:0.72rem\">트랙 없음. 시간 t>0 에서 base 속성을 바꾸면 자동 생성됩니다.</p>';\n }\n return el.tracks\n .map((t) => {\n const list = t.keyframes\n .map(\n (kf, idx) => `<li>\n <button type=\"button\" class=\"studio-tl-kf-btn\" data-jump-time=\"${kf.time}\" title=\"${kf.time}ms 로 이동\">t=${kf.time}ms</button>\n <code>${escapeHtml(String(kf.value))}</code>\n <button type=\"button\" class=\"studio-btn studio-btn-small studio-btn-danger\" data-remove-kf-prop=\"${escapeHtml(t.property)}\" data-remove-kf-time=\"${kf.time}\" data-kf-idx=\"${idx}\" title=\"삭제\">✕</button>\n </li>`,\n )\n .join(\"\");\n return `\n <div class=\"studio-track-row\">\n <div class=\"studio-track-row-head\">\n <span class=\"studio-track-row-prop\">${escapeHtml(t.property)}</span>\n <span class=\"studio-track-row-count\">${t.keyframes.length} kf</span>\n <button type=\"button\" class=\"studio-btn studio-btn-small\" data-add-kf=\"${escapeHtml(t.property)}\" title=\"현재 시간에 keyframe 추가\">+ kf</button>\n <button type=\"button\" class=\"studio-btn studio-btn-small studio-btn-danger\" data-remove-track=\"${escapeHtml(t.property)}\" title=\"트랙 삭제\">✕</button>\n </div>\n <ul class=\"studio-track-list\">${list}</ul>\n </div>\n `;\n })\n .join(\"\");\n}\n\nfunction onInput(e: Event): void {\n const target = e.target as HTMLInputElement;\n const key = target.dataset.propKey;\n if (!key) return;\n // Guard: skip text input events during IME composition\n if (target.type === \"text\" && (e as InputEvent).isComposing) return;\n if (target.type === \"text\" && isComposingFallback) return;\n let value: string | number | boolean = target.value;\n if (target.type === \"number\") value = Number(target.value);\n else if (target.type === \"checkbox\") value = target.checked;\n apply(key, value);\n}\n\nfunction onChange(e: Event): void {\n onInput(e);\n}\n\nfunction apply(key: string, value: string | number | boolean): void {\n const def = getDef();\n if (!def) return;\n const sel = getSelection();\n\n if (key === \"meta.title\") updateMeta({ title: String(value) });\n else if (key === \"meta.description\")\n updateMeta({ description: String(value) });\n else if (key === \"meta.duration\") updateDuration(Number(value));\n else if (key === \"canvas.width\") updateCanvas({ width: Number(value) });\n else if (key === \"canvas.height\") updateCanvas({ height: Number(value) });\n else if (key === \"canvas.background\")\n updateCanvas({ background: String(value) });\n else if (key === \"settings.loop\") updateSettings({ loop: Boolean(value) });\n else if (key === \"settings.autoplay\")\n updateSettings({ autoplay: Boolean(value) });\n else if (key === \"settings.showCaption\")\n updateSettings({ showCaption: Boolean(value) });\n else if (key === \"settings.showChapterList\")\n updateSettings({ showChapterList: Boolean(value) });\n else if (key.startsWith(\"el.\") && sel.kind === \"element\") {\n const prop = key.slice(3);\n const time = getCurrentTime();\n const el = def.elements.find((e) => e.id === sel.elementId);\n if (!el) return;\n const hasTrack = el.tracks.some((t) => t.property === prop);\n if (hasTrack) {\n setTrackKeyframe(sel.elementId, prop, time, value);\n } else {\n updateElementBase(sel.elementId, { [prop]: value });\n }\n } else if (key.startsWith(\"ap.\") && sel.kind === \"element\") {\n const [, idxStr, prop] = key.split(\".\");\n const idx = Number(idxStr);\n const patch: Partial<Appearance> = {};\n if (prop === \"start\") patch.start = Number(value);\n else if (prop === \"end\") patch.end = Number(value);\n else if (prop === \"entryMode\") patch.entryMode = value as EntryMode;\n else if (prop === \"entryDuration\") patch.entryDuration = Number(value);\n else if (prop === \"exitMode\") patch.exitMode = value as ExitMode;\n else if (prop === \"exitDuration\") patch.exitDuration = Number(value);\n updateAppearance(sel.elementId, idx, patch);\n } else if (key === \"chapter.time\" && sel.kind === \"chapter\") {\n updateChapter(sel.chapterId, { time: Number(value) });\n } else if (key === \"chapter.label\" && sel.kind === \"chapter\") {\n updateChapter(sel.chapterId, { label: String(value) });\n } else if (key === \"chapter.subtitle\" && sel.kind === \"chapter\") {\n updateChapter(sel.chapterId, { subtitle: String(value) });\n } else if (key.startsWith(\"effect.\") && sel.kind === \"effect\") {\n const prop = key.slice(7);\n const patch: Record<string, unknown> = {};\n if (\n prop === \"time\" ||\n prop === \"duration\" ||\n prop === \"scale\" ||\n prop === \"particles\" ||\n prop === \"radius\"\n ) {\n patch[prop] = Number(value);\n } else {\n patch[prop] = value;\n }\n updateEffect(sel.effectId, patch as Partial<AnimationEffect>);\n }\n}\n\nfunction onClick(e: Event): void {\n const target = e.target as HTMLElement;\n const def = getDef();\n if (!def) return;\n const sel = getSelection();\n\n const alignBtn = target.closest<HTMLElement>(\"[data-align]\");\n if (alignBtn) {\n alignSelected(alignBtn.dataset.align as AlignKind);\n return;\n }\n const distBtn = target.closest<HTMLElement>(\"[data-distribute]\");\n if (distBtn) {\n distributeSelected(distBtn.dataset.distribute as DistributeKind);\n return;\n }\n\n if (target.closest(\"[data-ungroup]\") && sel.kind === \"element\") {\n ungroupElement(sel.elementId);\n return;\n }\n const childLink = target.closest<HTMLElement>(\"[data-select-child]\");\n if (childLink) {\n e.preventDefault();\n setSelection({\n kind: \"element\",\n elementId: childLink.dataset.selectChild ?? \"\",\n });\n return;\n }\n\n if (target.closest(\"[data-add-chapter]\")) {\n const id = uniqueChapterId();\n addChapter({\n id,\n time: getCurrentTime(),\n label: `Chapter ${id.split(\"-\")[1]}`,\n subtitle: \"\",\n });\n return;\n }\n if (target.closest(\"[data-delete-chapter]\") && sel.kind === \"chapter\") {\n deleteChapter(sel.chapterId);\n return;\n }\n if (target.closest(\"[data-add-effect]\")) {\n const typeSel = document.getElementById(\n \"studio-new-effect-type\",\n ) as HTMLSelectElement | null;\n const type = (typeSel?.value ?? \"highlight\") as\n \"highlight\" | \"pulse\" | \"flow\";\n const firstEl = def.elements[0];\n if (!firstEl) return;\n const id = uniqueEffectId();\n const base = {\n id,\n elementId: firstEl.id,\n time: getCurrentTime(),\n duration: 500,\n };\n let eff: AnimationEffect;\n if (type === \"highlight\")\n eff = { ...base, type: \"highlight\", color: \"#facc15\" };\n else if (type === \"pulse\") eff = { ...base, type: \"pulse\", scale: 1.12 };\n else\n eff = {\n ...base,\n type: \"flow\",\n color: \"#facc15\",\n particles: 3,\n radius: 4,\n duration: 800,\n };\n addEffect(eff);\n return;\n }\n if (target.closest(\"[data-delete-effect]\") && sel.kind === \"effect\") {\n deleteEffect(sel.effectId);\n return;\n }\n const removeAp = target.closest<HTMLElement>(\"[data-remove-appearance]\");\n if (removeAp && sel.kind === \"element\") {\n const idx = Number(removeAp.dataset.removeAppearance);\n removeAppearance(sel.elementId, idx);\n return;\n }\n const removeTk = target.closest<HTMLElement>(\"[data-remove-track]\");\n if (removeTk && sel.kind === \"element\") {\n removeTrack(sel.elementId, removeTk.dataset.removeTrack ?? \"\");\n return;\n }\n const removeKf = target.closest<HTMLElement>(\"[data-remove-kf-prop]\");\n if (removeKf && sel.kind === \"element\") {\n const prop = removeKf.dataset.removeKfProp ?? \"\";\n const time = Number(removeKf.dataset.removeKfTime ?? \"0\");\n removeTrackKeyframe(sel.elementId, prop, time);\n return;\n }\n const addKf = target.closest<HTMLElement>(\"[data-add-kf]\");\n if (addKf && sel.kind === \"element\") {\n const prop = addKf.dataset.addKf ?? \"\";\n const el = def.elements.find((e) => e.id === sel.elementId);\n const baseVal = el\n ? (el as unknown as Record<string, unknown>)[prop]\n : undefined;\n if (\n typeof baseVal === \"string\" ||\n typeof baseVal === \"number\" ||\n typeof baseVal === \"boolean\"\n ) {\n setTrackKeyframe(sel.elementId, prop, getCurrentTime(), baseVal);\n }\n return;\n }\n const jumpTime = target.closest<HTMLElement>(\"[data-jump-time]\");\n if (jumpTime) {\n setCurrentTime(Number(jumpTime.dataset.jumpTime ?? \"0\"));\n return;\n }\n const addAp = target.closest(\"[data-add-appearance]\");\n if (addAp && sel.kind === \"element\") {\n addAppearance(sel.elementId, {\n start: getCurrentTime(),\n end: def.duration,\n entryDuration: 300,\n exitDuration: 300,\n });\n return;\n }\n}\n","import {\n addChapter,\n getCurrentTime,\n getDef,\n getSelection,\n removeTrackKeyframe,\n setCurrentTime,\n setSelection,\n setTrackKeyframe,\n subscribe,\n uniqueChapterId,\n updateAppearance,\n updateChapter,\n} from \"./state\";\nimport type { AnimationElement } from \"@kokoa/clotho\";\nimport { friendlyElementLabel } from \"./element-list\";\n\nlet tracksEl: HTMLElement | null = null;\nlet elTracksEl: HTMLElement | null = null;\nlet addBtn: HTMLButtonElement | null = null;\nlet scrollSyncSuppress = false;\nlet dragTooltipEl: HTMLDivElement | null = null;\n\nlet pxPerMs = 0.15;\nconst GUTTER_PX = 140;\nconst PX_PER_MS_KEY = \"studio.timeline.pxPerMs\";\n\ntry {\n const saved = Number(localStorage.getItem(PX_PER_MS_KEY));\n if (Number.isFinite(saved) && saved > 0.02 && saved < 2) pxPerMs = saved;\n} catch {\n void 0;\n}\ntype DragMode =\n | { kind: \"time\" }\n | { kind: \"chapter\"; id: string }\n | {\n kind: \"appearance\";\n elementId: string;\n apIdx: number;\n edge: \"start\" | \"end\" | \"move\";\n startMouseX: number;\n startApStart: number;\n startApEnd: number;\n }\n | {\n kind: \"keyframe\";\n elementId: string;\n prop: string;\n startTime: number;\n startValue: string | number | boolean;\n startMouseX: number;\n currentTime: number;\n };\nlet dragMode: DragMode | null = null;\n\nexport function initTimeline(\n tracksRoot: HTMLElement,\n addChapterBtn: HTMLButtonElement | null,\n elementTracks: HTMLElement,\n): void {\n tracksEl = tracksRoot;\n elTracksEl = elementTracks;\n addBtn = addChapterBtn;\n subscribe(render);\n tracksRoot.addEventListener(\"click\", onTracksClick);\n tracksRoot.addEventListener(\"mousedown\", onMouseDown);\n elementTracks.addEventListener(\"click\", onElTracksClick);\n elementTracks.addEventListener(\"mousedown\", onMouseDown);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n addBtn?.addEventListener(\"click\", () => {\n const id = uniqueChapterId();\n const def = getDef();\n const lastTime = def\n ? def.chapters.reduce((max, c) => (c.time > max ? c.time : max), -1)\n : -1;\n const newTime =\n lastTime < 0\n ? getCurrentTime()\n : Math.max(getCurrentTime(), lastTime + 500);\n addChapter({\n id,\n time: newTime,\n label: `Chapter ${id.split(\"-\")[1]}`,\n subtitle: \"\",\n });\n setSelection({ kind: \"chapter\", chapterId: id });\n });\n const headerWrap = tracksRoot.parentElement;\n const elementWrap = elementTracks.parentElement;\n if (headerWrap && elementWrap) {\n headerWrap.addEventListener(\n \"scroll\",\n () => mirrorScroll(headerWrap, elementWrap),\n { passive: true },\n );\n elementWrap.addEventListener(\n \"scroll\",\n () => mirrorScroll(elementWrap, headerWrap),\n { passive: true },\n );\n const onZoomWheel = (e: WheelEvent): void => {\n if (!e.ctrlKey && !e.metaKey) return;\n e.preventDefault();\n const wrap = e.currentTarget as HTMLElement;\n const wrapRect = wrap.getBoundingClientRect();\n const cursorBodyX =\n e.clientX - wrapRect.left - GUTTER_PX + wrap.scrollLeft;\n const oldPx = pxPerMs;\n const factor = e.deltaY < 0 ? 1.15 : 1 / 1.15;\n pxPerMs = Math.max(0.025, Math.min(1.5, oldPx * factor));\n try {\n localStorage.setItem(PX_PER_MS_KEY, String(pxPerMs));\n } catch {\n void 0;\n }\n const ratio = pxPerMs / oldPx;\n render();\n const newScrollLeft =\n cursorBodyX * ratio - (e.clientX - wrapRect.left - GUTTER_PX);\n wrap.scrollLeft = Math.max(0, newScrollLeft);\n };\n headerWrap.addEventListener(\"wheel\", onZoomWheel, { passive: false });\n elementWrap.addEventListener(\"wheel\", onZoomWheel, { passive: false });\n }\n render();\n}\n\nfunction mirrorScroll(source: HTMLElement, target: HTMLElement): void {\n if (scrollSyncSuppress) return;\n scrollSyncSuppress = true;\n target.scrollLeft = source.scrollLeft;\n requestAnimationFrame(() => {\n scrollSyncSuppress = false;\n });\n}\n\nfunction showDragTooltip(clientX: number, clientY: number, text: string): void {\n if (!dragTooltipEl) {\n dragTooltipEl = document.createElement(\"div\");\n dragTooltipEl.className = \"studio-tl-drag-tooltip\";\n document.body.appendChild(dragTooltipEl);\n }\n dragTooltipEl.textContent = text;\n dragTooltipEl.style.left = `${clientX + 14}px`;\n dragTooltipEl.style.top = `${clientY - 28}px`;\n dragTooltipEl.style.display = \"block\";\n}\n\nfunction hideDragTooltip(): void {\n if (dragTooltipEl) dragTooltipEl.style.display = \"none\";\n}\n\nfunction escapeHtml(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\");\n}\n\nfunction timeToPx(ms: number): number {\n return ms * pxPerMs;\n}\n\nfunction pxToTime(px: number): number {\n return Math.max(0, Math.round(px / pxPerMs));\n}\n\nfunction render(): void {\n if (!tracksEl || !elTracksEl) return;\n const def = getDef();\n if (!def) {\n tracksEl.innerHTML =\n '<p class=\"studio-tl-empty\">애니메이션을 열거나 새로 만드세요.</p>';\n elTracksEl.innerHTML = \"\";\n return;\n }\n const sel = getSelection();\n const currentTime = getCurrentTime();\n const totalPx = Math.max(300, timeToPx(def.duration));\n const sortedChapters = [...def.chapters].sort((a, b) => a.time - b.time);\n\n const rulerMarks: string[] = [];\n const step = def.duration > 10000 ? 1000 : def.duration > 2000 ? 500 : 100;\n for (let t = 0; t <= def.duration; t += step) {\n const x = timeToPx(t);\n rulerMarks.push(\n `<div class=\"studio-tl-ruler-mark\" style=\"left:${x}px\"><span>${t}</span></div>`,\n );\n }\n\n const chapterMarkers = sortedChapters\n .map((c) => {\n const x = timeToPx(c.time);\n const isSel = sel.kind === \"chapter\" && sel.chapterId === c.id;\n return `<div class=\"studio-tl-chapter-marker ${isSel ? \"is-selected\" : \"\"}\" style=\"left:${x}px\" data-chapter-id=\"${escapeHtml(c.id)}\" title=\"${escapeHtml(c.label)} @ ${c.time}ms\">\n <div class=\"studio-tl-chapter-line\"></div>\n <div class=\"studio-tl-chapter-label\">${escapeHtml(c.label || c.id)}</div>\n </div>`;\n })\n .join(\"\");\n\n const playheadCol = `<div class=\"studio-tl-playhead-col\" style=\"left:${GUTTER_PX}px;width:${totalPx}px\"><div class=\"studio-tl-playhead\" style=\"left:${timeToPx(currentTime)}px\" title=\"t=${currentTime}ms\"></div></div>`;\n\n tracksEl.innerHTML = `\n <div class=\"studio-tl-chart\">\n <div class=\"studio-tl-row studio-tl-ruler-row\">\n <div class=\"studio-tl-gutter studio-tl-gutter-header\" aria-hidden=\"true\">⏱ 시간 (ms)</div>\n <div class=\"studio-tl-body\" style=\"width:${totalPx}px\">\n <div class=\"studio-tl-ruler\">${rulerMarks.join(\"\")}</div>\n </div>\n </div>\n <div class=\"studio-tl-row studio-tl-chapter-row-wrap\">\n <div class=\"studio-tl-gutter\">Chapters</div>\n <div class=\"studio-tl-body\" style=\"width:${totalPx}px\">\n <div class=\"studio-tl-chapter-row\" data-tl-area=\"chapter\">\n ${chapterMarkers}\n </div>\n </div>\n </div>\n ${playheadCol}\n </div>\n <div class=\"studio-tl-total\">전체 ${def.duration} ms · ${sortedChapters.length} chapters · ${def.elements.length} elements · 현재 ${currentTime} ms</div>\n `;\n\n renderElementTracks(def.elements, currentTime, totalPx, sel);\n}\n\nfunction gutterLabel(el: AnimationElement): string {\n return `${friendlyElementLabel(el)} · ${el.type}`;\n}\n\nfunction renderElementTracks(\n elements: AnimationElement[],\n currentTime: number,\n totalPx: number,\n sel: ReturnType<typeof getSelection>,\n): void {\n if (!elTracksEl) return;\n if (elements.length === 0) {\n elTracksEl.innerHTML = '<p class=\"studio-tl-empty\">요소 없음</p>';\n return;\n }\n const rows = elements\n .map((el) => {\n const isSel =\n (sel.kind === \"element\" && sel.elementId === el.id) ||\n (sel.kind === \"elements\" && sel.elementIds.includes(el.id));\n const appearanceBars = el.appearances\n .map((ap, idx) => {\n const left = timeToPx(ap.start);\n const width = Math.max(4, timeToPx(ap.end - ap.start));\n return `<div class=\"studio-tl-appearance\" style=\"left:${left}px;width:${width}px\" data-elem-id=\"${escapeHtml(el.id)}\" data-ap-idx=\"${idx}\" title=\"${ap.start}-${ap.end}ms\">\n <span class=\"studio-tl-ap-edge studio-tl-ap-edge-left\" data-edge=\"start\"></span>\n <span class=\"studio-tl-ap-edge studio-tl-ap-edge-right\" data-edge=\"end\"></span>\n <span class=\"studio-tl-ap-label\">${ap.start}–${ap.end}</span>\n </div>`;\n })\n .join(\"\");\n const trackKfs = el.tracks\n .flatMap((t) =>\n t.keyframes.map((kf) => ({ prop: t.property, time: kf.time })),\n )\n .map(\n (kf) =>\n `<div class=\"studio-tl-keyframe\" style=\"left:${timeToPx(kf.time)}px\" data-kf-elem-id=\"${escapeHtml(el.id)}\" data-kf-prop=\"${escapeHtml(kf.prop)}\" data-kf-time=\"${kf.time}\" title=\"${escapeHtml(kf.prop)} @ ${kf.time}ms (드래그로 이동)\">◆</div>`,\n )\n .join(\"\");\n return `\n <div class=\"studio-tl-row studio-tl-element-row ${isSel ? \"is-selected\" : \"\"}\" data-elem-id=\"${escapeHtml(el.id)}\">\n <div class=\"studio-tl-gutter studio-tl-element-label\" title=\"${escapeHtml(el.id)}\">${escapeHtml(gutterLabel(el))}</div>\n <div class=\"studio-tl-body\" style=\"width:${totalPx}px\">\n <div class=\"studio-tl-element-track\" data-tl-area=\"elements\">\n ${appearanceBars}\n ${trackKfs}\n </div>\n </div>\n </div>\n `;\n })\n .join(\"\");\n const playheadCol = `<div class=\"studio-tl-playhead-col\" style=\"left:${GUTTER_PX}px;width:${totalPx}px\"><div class=\"studio-tl-playhead\" style=\"left:${timeToPx(currentTime)}px\"></div></div>`;\n elTracksEl.innerHTML = `<div class=\"studio-tl-chart\">${rows}${playheadCol}</div>`;\n}\n\nfunction onTracksClick(e: MouseEvent): void {\n const target = e.target as HTMLElement;\n const chapterMarker = target.closest<HTMLElement>(\"[data-chapter-id]\");\n if (chapterMarker) {\n setSelection({\n kind: \"chapter\",\n chapterId: chapterMarker.dataset.chapterId!,\n });\n }\n}\n\nfunction onElTracksClick(e: MouseEvent): void {\n if (dragMode) return;\n const target = e.target as HTMLElement;\n if (target.closest(\"[data-ap-idx]\") || target.closest(\"[data-edge]\")) return;\n const row = target.closest<HTMLElement>(\"[data-elem-id]\");\n if (row) {\n setSelection({ kind: \"element\", elementId: row.dataset.elemId! });\n }\n}\n\nfunction onMouseDown(e: MouseEvent): void {\n if (e.button !== 0) return;\n const target = e.target as HTMLElement;\n\n const kfEl = target.closest<HTMLElement>(\"[data-kf-elem-id]\");\n if (kfEl) {\n e.preventDefault();\n e.stopPropagation();\n const elementId = kfEl.dataset.kfElemId!;\n const prop = kfEl.dataset.kfProp!;\n const startTime = Number(kfEl.dataset.kfTime);\n const def = getDef();\n const baseEl = def?.elements.find((x) => x.id === elementId);\n const track = baseEl?.tracks.find((t) => t.property === prop);\n const kf = track?.keyframes.find((k) => k.time === startTime);\n if (\n kf &&\n (typeof kf.value === \"string\" ||\n typeof kf.value === \"number\" ||\n typeof kf.value === \"boolean\")\n ) {\n dragMode = {\n kind: \"keyframe\",\n elementId,\n prop,\n startTime,\n startValue: kf.value,\n startMouseX: e.clientX,\n currentTime: startTime,\n };\n }\n return;\n }\n\n const edge = target.closest<HTMLElement>(\"[data-edge]\");\n if (edge) {\n const apEl = edge.closest<HTMLElement>(\"[data-ap-idx]\");\n if (apEl) {\n e.preventDefault();\n const elementId = apEl.dataset.elemId!;\n const apIdx = Number(apEl.dataset.apIdx);\n const def = getDef();\n const el = def?.elements.find((x) => x.id === elementId);\n const ap = el?.appearances[apIdx];\n if (ap) {\n dragMode = {\n kind: \"appearance\",\n elementId,\n apIdx,\n edge: edge.dataset.edge as \"start\" | \"end\",\n startMouseX: e.clientX,\n startApStart: ap.start,\n startApEnd: ap.end,\n };\n }\n return;\n }\n }\n const apBar = target.closest<HTMLElement>(\"[data-ap-idx]\");\n if (apBar) {\n e.preventDefault();\n const elementId = apBar.dataset.elemId!;\n const apIdx = Number(apBar.dataset.apIdx);\n const def = getDef();\n const el = def?.elements.find((x) => x.id === elementId);\n const ap = el?.appearances[apIdx];\n if (ap) {\n dragMode = {\n kind: \"appearance\",\n elementId,\n apIdx,\n edge: \"move\",\n startMouseX: e.clientX,\n startApStart: ap.start,\n startApEnd: ap.end,\n };\n }\n return;\n }\n\n const chapterMarker = target.closest<HTMLElement>(\"[data-chapter-id]\");\n if (chapterMarker) {\n e.preventDefault();\n dragMode = { kind: \"chapter\", id: chapterMarker.dataset.chapterId! };\n return;\n }\n const area = target.closest<HTMLElement>(\"[data-tl-area]\");\n if (area) {\n e.preventDefault();\n const rect = area.getBoundingClientRect();\n setCurrentTime(pxToTime(e.clientX - rect.left));\n dragMode = { kind: \"time\" };\n }\n}\n\nfunction onMouseMove(e: MouseEvent): void {\n if (!dragMode) return;\n e.preventDefault();\n if (dragMode.kind === \"time\") {\n const area = tracksEl?.querySelector(\n \"[data-tl-area]\",\n ) as HTMLElement | null;\n if (!area) return;\n const rect = area.getBoundingClientRect();\n const t = pxToTime(e.clientX - rect.left);\n setCurrentTime(t);\n showDragTooltip(e.clientX, e.clientY, `⏱ ${t} ms`);\n return;\n }\n if (dragMode.kind === \"chapter\") {\n const area = tracksEl?.querySelector(\n \"[data-tl-area]\",\n ) as HTMLElement | null;\n if (!area) return;\n const rect = area.getBoundingClientRect();\n const t = pxToTime(e.clientX - rect.left);\n updateChapter(dragMode.id, { time: t });\n showDragTooltip(e.clientX, e.clientY, `📌 ${t} ms`);\n return;\n }\n if (dragMode.kind === \"keyframe\") {\n const dxPx = e.clientX - dragMode.startMouseX;\n const dt = Math.round(dxPx / pxPerMs);\n const newTime = Math.max(0, dragMode.startTime + dt);\n if (newTime !== dragMode.currentTime) {\n removeTrackKeyframe(\n dragMode.elementId,\n dragMode.prop,\n dragMode.currentTime,\n );\n setTrackKeyframe(\n dragMode.elementId,\n dragMode.prop,\n newTime,\n dragMode.startValue,\n );\n dragMode.currentTime = newTime;\n }\n showDragTooltip(e.clientX, e.clientY, `◆ ${dragMode.prop} @ ${newTime} ms`);\n return;\n }\n if (dragMode.kind === \"appearance\") {\n const dxPx = e.clientX - dragMode.startMouseX;\n const dt = Math.round(dxPx / pxPerMs);\n if (dragMode.edge === \"start\") {\n updateAppearance(dragMode.elementId, dragMode.apIdx, {\n start: Math.max(0, dragMode.startApStart + dt),\n });\n } else if (dragMode.edge === \"end\") {\n updateAppearance(dragMode.elementId, dragMode.apIdx, {\n end: Math.max(0, dragMode.startApEnd + dt),\n });\n } else {\n updateAppearance(dragMode.elementId, dragMode.apIdx, {\n start: Math.max(0, dragMode.startApStart + dt),\n end: Math.max(0, dragMode.startApEnd + dt),\n });\n }\n const a = dragMode.startApStart + dt;\n const b = dragMode.startApEnd + dt;\n showDragTooltip(\n e.clientX,\n e.clientY,\n `▶ ${Math.max(0, a)}–${Math.max(0, b)} ms`,\n );\n }\n}\n\nfunction onMouseUp(): void {\n dragMode = null;\n hideDragTooltip();\n}\n","// AUTO-GENERATED by scripts/build-studio-icons.mjs - do not edit by hand\n// Sources: Iconify (logos CC0, mdi Apache 2.0, tabler MIT, lucide ISC, devicon MIT, material-symbols Apache 2.0, cryptocurrency-color CC0) + simpleicons.org (CC0)\n// Total icons: 1856\n\nimport type { IconEntry, IconCategory } from \"./icon-library-types\";\n\nexport const ICON_GROUPS: {\n category: IconCategory;\n title: string;\n entries: IconEntry[];\n}[] = [\n {\n category: \"aws\",\n title: \"AWS\",\n entries: [\n {\n id: \"aws_aws\",\n title: \"AWS\",\n src: \"https://api.iconify.design/logos/aws.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-amplify\",\n title: \"Amplify\",\n src: \"https://api.iconify.design/logos/aws-amplify.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-api-gateway\",\n title: \"Api Gateway\",\n src: \"https://api.iconify.design/logos/aws-api-gateway.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-app-mesh\",\n title: \"App Mesh\",\n src: \"https://api.iconify.design/logos/aws-app-mesh.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-appflow\",\n title: \"Appflow\",\n src: \"https://api.iconify.design/logos/aws-appflow.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-appsync\",\n title: \"Appsync\",\n src: \"https://api.iconify.design/logos/aws-appsync.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-athena\",\n title: \"Athena\",\n src: \"https://api.iconify.design/logos/aws-athena.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-aurora\",\n title: \"Aurora\",\n src: \"https://api.iconify.design/logos/aws-aurora.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-backup\",\n title: \"Backup\",\n src: \"https://api.iconify.design/logos/aws-backup.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-batch\",\n title: \"Batch\",\n src: \"https://api.iconify.design/logos/aws-batch.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-certificate-manager\",\n title: \"Certificate Manager\",\n src: \"https://api.iconify.design/logos/aws-certificate-manager.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-cloudformation\",\n title: \"Cloudformation\",\n src: \"https://api.iconify.design/logos/aws-cloudformation.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-cloudfront\",\n title: \"Cloudfront\",\n src: \"https://api.iconify.design/logos/aws-cloudfront.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-cloudsearch\",\n title: \"Cloudsearch\",\n src: \"https://api.iconify.design/logos/aws-cloudsearch.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-cloudtrail\",\n title: \"Cloudtrail\",\n src: \"https://api.iconify.design/logos/aws-cloudtrail.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-cloudwatch\",\n title: \"Cloudwatch\",\n src: \"https://api.iconify.design/logos/aws-cloudwatch.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-codebuild\",\n title: \"Codebuild\",\n src: \"https://api.iconify.design/logos/aws-codebuild.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-codecommit\",\n title: \"Codecommit\",\n src: \"https://api.iconify.design/logos/aws-codecommit.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-codedeploy\",\n title: \"Codedeploy\",\n src: \"https://api.iconify.design/logos/aws-codedeploy.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-codepipeline\",\n title: \"Codepipeline\",\n src: \"https://api.iconify.design/logos/aws-codepipeline.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-codestar\",\n title: \"Codestar\",\n src: \"https://api.iconify.design/logos/aws-codestar.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-cognito\",\n title: \"Cognito\",\n src: \"https://api.iconify.design/logos/aws-cognito.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-config\",\n title: \"Config\",\n src: \"https://api.iconify.design/logos/aws-config.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-documentdb\",\n title: \"Documentdb\",\n src: \"https://api.iconify.design/logos/aws-documentdb.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-dynamodb\",\n title: \"Dynamodb\",\n src: \"https://api.iconify.design/logos/aws-dynamodb.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-ec2\",\n title: \"Ec2\",\n src: \"https://api.iconify.design/logos/aws-ec2.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-ecs\",\n title: \"Ecs\",\n src: \"https://api.iconify.design/logos/aws-ecs.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-eks\",\n title: \"Eks\",\n src: \"https://api.iconify.design/logos/aws-eks.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-elastic-beanstalk\",\n title: \"Elastic Beanstalk\",\n src: \"https://api.iconify.design/logos/aws-elastic-beanstalk.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-elasticache\",\n title: \"Elasticache\",\n src: \"https://api.iconify.design/logos/aws-elasticache.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-elb\",\n title: \"Elb\",\n src: \"https://api.iconify.design/logos/aws-elb.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-eventbridge\",\n title: \"Eventbridge\",\n src: \"https://api.iconify.design/logos/aws-eventbridge.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-fargate\",\n title: \"Fargate\",\n src: \"https://api.iconify.design/logos/aws-fargate.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-glacier\",\n title: \"Glacier\",\n src: \"https://api.iconify.design/logos/aws-glacier.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-glue\",\n title: \"Glue\",\n src: \"https://api.iconify.design/logos/aws-glue.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-iam\",\n title: \"Iam\",\n src: \"https://api.iconify.design/logos/aws-iam.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-keyspaces\",\n title: \"Keyspaces\",\n src: \"https://api.iconify.design/logos/aws-keyspaces.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-kinesis\",\n title: \"Kinesis\",\n src: \"https://api.iconify.design/logos/aws-kinesis.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-kms\",\n title: \"Kms\",\n src: \"https://api.iconify.design/logos/aws-kms.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-lake-formation\",\n title: \"Lake Formation\",\n src: \"https://api.iconify.design/logos/aws-lake-formation.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-lambda\",\n title: \"Lambda\",\n src: \"https://api.iconify.design/logos/aws-lambda.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-lightsail\",\n title: \"Lightsail\",\n src: \"https://api.iconify.design/logos/aws-lightsail.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-mq\",\n title: \"Mq\",\n src: \"https://api.iconify.design/logos/aws-mq.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-msk\",\n title: \"Msk\",\n src: \"https://api.iconify.design/logos/aws-msk.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-neptune\",\n title: \"Neptune\",\n src: \"https://api.iconify.design/logos/aws-neptune.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-open-search\",\n title: \"Open Search\",\n src: \"https://api.iconify.design/logos/aws-open-search.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-opsworks\",\n title: \"Opsworks\",\n src: \"https://api.iconify.design/logos/aws-opsworks.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-quicksight\",\n title: \"Quicksight\",\n src: \"https://api.iconify.design/logos/aws-quicksight.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-rds\",\n title: \"Rds\",\n src: \"https://api.iconify.design/logos/aws-rds.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-redshift\",\n title: \"Redshift\",\n src: \"https://api.iconify.design/logos/aws-redshift.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-route53\",\n title: \"Route53\",\n src: \"https://api.iconify.design/logos/aws-route53.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-s3\",\n title: \"S3\",\n src: \"https://api.iconify.design/logos/aws-s3.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-secrets-manager\",\n title: \"Secrets Manager\",\n src: \"https://api.iconify.design/logos/aws-secrets-manager.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-ses\",\n title: \"Ses\",\n src: \"https://api.iconify.design/logos/aws-ses.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-shield\",\n title: \"Shield\",\n src: \"https://api.iconify.design/logos/aws-shield.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-sns\",\n title: \"Sns\",\n src: \"https://api.iconify.design/logos/aws-sns.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-sqs\",\n title: \"Sqs\",\n src: \"https://api.iconify.design/logos/aws-sqs.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-step-functions\",\n title: \"Step Functions\",\n src: \"https://api.iconify.design/logos/aws-step-functions.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-systems-manager\",\n title: \"Systems Manager\",\n src: \"https://api.iconify.design/logos/aws-systems-manager.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-timestream\",\n title: \"Timestream\",\n src: \"https://api.iconify.design/logos/aws-timestream.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-vpc\",\n title: \"Vpc\",\n src: \"https://api.iconify.design/logos/aws-vpc.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-waf\",\n title: \"Waf\",\n src: \"https://api.iconify.design/logos/aws-waf.svg\",\n category: \"aws\",\n },\n {\n id: \"aws_aws-xray\",\n title: \"Xray\",\n src: \"https://api.iconify.design/logos/aws-xray.svg\",\n category: \"aws\",\n },\n ],\n },\n {\n category: \"gcp\",\n title: \"GCP\",\n entries: [\n {\n id: \"gcp_google-ads\",\n title: \"Google Ads\",\n src: \"https://api.iconify.design/logos/google-ads.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-adsense\",\n title: \"Google Adsense\",\n src: \"https://api.iconify.design/logos/google-adsense.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-analytics\",\n title: \"Google Analytics\",\n src: \"https://api.iconify.design/logos/google-analytics.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-cloud\",\n title: \"Google Cloud\",\n src: \"https://api.iconify.design/logos/google-cloud.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-cloud-functions\",\n title: \"Google Cloud Functions\",\n src: \"https://api.iconify.design/logos/google-cloud-functions.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-cloud-run\",\n title: \"Google Cloud Run\",\n src: \"https://api.iconify.design/logos/google-cloud-run.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-developers\",\n title: \"Google Developers\",\n src: \"https://api.iconify.design/logos/google-developers.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-domains\",\n title: \"Google Domains\",\n src: \"https://api.iconify.design/logos/google-domains.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-domains-icon\",\n title: \"Google Domains Icon\",\n src: \"https://api.iconify.design/logos/google-domains-icon.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-drive\",\n title: \"Google Drive\",\n src: \"https://api.iconify.design/logos/google-drive.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-gmail\",\n title: \"Google Gmail\",\n src: \"https://api.iconify.design/logos/google-gmail.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-maps\",\n title: \"Google Maps\",\n src: \"https://api.iconify.design/logos/google-maps.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-meet\",\n title: \"Google Meet\",\n src: \"https://api.iconify.design/logos/google-meet.svg\",\n category: \"gcp\",\n },\n {\n id: \"gcp_google-workspace\",\n title: \"Google Workspace\",\n src: \"https://api.iconify.design/logos/google-workspace.svg\",\n category: \"gcp\",\n },\n ],\n },\n {\n category: \"azure\",\n title: \"Azure / Microsoft\",\n entries: [\n {\n id: \"az_microsoft\",\n title: \"Microsoft\",\n src: \"https://api.iconify.design/logos/microsoft.svg\",\n category: \"azure\",\n },\n {\n id: \"az_microsoft-azure\",\n title: \"Microsoft Azure\",\n src: \"https://api.iconify.design/logos/microsoft-azure.svg\",\n category: \"azure\",\n },\n {\n id: \"az_microsoft-edge\",\n title: \"Microsoft Edge\",\n src: \"https://api.iconify.design/logos/microsoft-edge.svg\",\n category: \"azure\",\n },\n {\n id: \"az_microsoft-icon\",\n title: \"Microsoft Icon\",\n src: \"https://api.iconify.design/logos/microsoft-icon.svg\",\n category: \"azure\",\n },\n {\n id: \"az_microsoft-onedrive\",\n title: \"Microsoft Onedrive\",\n src: \"https://api.iconify.design/logos/microsoft-onedrive.svg\",\n category: \"azure\",\n },\n {\n id: \"az_microsoft-power-bi\",\n title: \"Microsoft Power Bi\",\n src: \"https://api.iconify.design/logos/microsoft-power-bi.svg\",\n category: \"azure\",\n },\n {\n id: \"az_microsoft-teams\",\n title: \"Microsoft Teams\",\n src: \"https://api.iconify.design/logos/microsoft-teams.svg\",\n category: \"azure\",\n },\n {\n id: \"az_microsoft-windows\",\n title: \"Microsoft Windows\",\n src: \"https://api.iconify.design/logos/microsoft-windows.svg\",\n category: \"azure\",\n },\n {\n id: \"az_microsoft-windows-icon\",\n title: \"Microsoft Windows Icon\",\n src: \"https://api.iconify.design/logos/microsoft-windows-icon.svg\",\n category: \"azure\",\n },\n ],\n },\n {\n category: \"cloud\",\n title: \"Cloud / Services\",\n entries: [\n {\n id: \"cloud_cloudflare\",\n title: \"Cloudflare\",\n src: \"https://api.iconify.design/logos/cloudflare.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_cloudflare-icon\",\n title: \"Cloudflare\",\n src: \"https://api.iconify.design/logos/cloudflare-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_vercel\",\n title: \"Vercel\",\n src: \"https://api.iconify.design/logos/vercel.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_vercel-icon\",\n title: \"Vercel\",\n src: \"https://api.iconify.design/logos/vercel-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_netlify\",\n title: \"Netlify\",\n src: \"https://api.iconify.design/logos/netlify.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_netlify-icon\",\n title: \"Netlify\",\n src: \"https://api.iconify.design/logos/netlify-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_digital-ocean\",\n title: \"Digital Ocean\",\n src: \"https://api.iconify.design/logos/digital-ocean.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_digital-ocean-icon\",\n title: \"Digital Ocean\",\n src: \"https://api.iconify.design/logos/digital-ocean-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_heroku\",\n title: \"Heroku\",\n src: \"https://api.iconify.design/logos/heroku.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_heroku-icon\",\n title: \"Heroku\",\n src: \"https://api.iconify.design/logos/heroku-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_fly\",\n title: \"Fly\",\n src: \"https://api.iconify.design/logos/fly.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_fly-icon\",\n title: \"Fly\",\n src: \"https://api.iconify.design/logos/fly-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_firebase\",\n title: \"Firebase\",\n src: \"https://api.iconify.design/logos/firebase.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_firebase-icon\",\n title: \"Firebase\",\n src: \"https://api.iconify.design/logos/firebase-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_supabase\",\n title: \"Supabase\",\n src: \"https://api.iconify.design/logos/supabase.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_supabase-icon\",\n title: \"Supabase\",\n src: \"https://api.iconify.design/logos/supabase-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_planetscale\",\n title: \"Planetscale\",\n src: \"https://api.iconify.design/logos/planetscale.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_fastly\",\n title: \"Fastly\",\n src: \"https://api.iconify.design/logos/fastly.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_linode\",\n title: \"Linode\",\n src: \"https://api.iconify.design/logos/linode.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_rackspace\",\n title: \"Rackspace\",\n src: \"https://api.iconify.design/logos/rackspace.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_rackspace-icon\",\n title: \"Rackspace\",\n src: \"https://api.iconify.design/logos/rackspace-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_akamai\",\n title: \"Akamai\",\n src: \"https://api.iconify.design/logos/akamai.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_datadog\",\n title: \"Datadog\",\n src: \"https://api.iconify.design/logos/datadog.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_datadog-icon\",\n title: \"Datadog\",\n src: \"https://api.iconify.design/logos/datadog-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_new-relic\",\n title: \"New Relic\",\n src: \"https://api.iconify.design/logos/new-relic.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_new-relic-icon\",\n title: \"New Relic\",\n src: \"https://api.iconify.design/logos/new-relic-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_mailgun\",\n title: \"Mailgun\",\n src: \"https://api.iconify.design/logos/mailgun.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_mailgun-icon\",\n title: \"Mailgun\",\n src: \"https://api.iconify.design/logos/mailgun-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_sendgrid\",\n title: \"Sendgrid\",\n src: \"https://api.iconify.design/logos/sendgrid.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_sendgrid-icon\",\n title: \"Sendgrid\",\n src: \"https://api.iconify.design/logos/sendgrid-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_twilio\",\n title: \"Twilio\",\n src: \"https://api.iconify.design/logos/twilio.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_twilio-icon\",\n title: \"Twilio\",\n src: \"https://api.iconify.design/logos/twilio-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_stripe\",\n title: \"Stripe\",\n src: \"https://api.iconify.design/logos/stripe.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_shopify\",\n title: \"Shopify\",\n src: \"https://api.iconify.design/logos/shopify.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_cloud9\",\n title: \"Cloud9\",\n src: \"https://api.iconify.design/logos/cloud9.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_oracle\",\n title: \"Oracle\",\n src: \"https://api.iconify.design/logos/oracle.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_rocky-linux\",\n title: \"Rocky Linux\",\n src: \"https://api.iconify.design/logos/rocky-linux.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_rocky-linux-icon\",\n title: \"Rocky Linux\",\n src: \"https://api.iconify.design/logos/rocky-linux-icon.svg\",\n category: \"cloud\",\n },\n {\n id: \"cloud_ibm\",\n title: \"Ibm\",\n src: \"https://api.iconify.design/logos/ibm.svg\",\n category: \"cloud\",\n },\n ],\n },\n {\n category: \"database\",\n title: \"Database / Storage\",\n entries: [\n {\n id: \"db_postgresql\",\n title: \"Postgresql\",\n src: \"https://api.iconify.design/logos/postgresql.svg\",\n category: \"database\",\n },\n {\n id: \"db_mysql\",\n title: \"Mysql\",\n src: \"https://api.iconify.design/logos/mysql.svg\",\n category: \"database\",\n },\n {\n id: \"db_mariadb\",\n title: \"Mariadb\",\n src: \"https://api.iconify.design/logos/mariadb.svg\",\n category: \"database\",\n },\n {\n id: \"db_mongodb\",\n title: \"Mongodb\",\n src: \"https://api.iconify.design/logos/mongodb.svg\",\n category: \"database\",\n },\n {\n id: \"db_redis\",\n title: \"Redis\",\n src: \"https://api.iconify.design/logos/redis.svg\",\n category: \"database\",\n },\n {\n id: \"db_sqlite\",\n title: \"Sqlite\",\n src: \"https://api.iconify.design/logos/sqlite.svg\",\n category: \"database\",\n },\n {\n id: \"db_elasticsearch\",\n title: \"Elasticsearch\",\n src: \"https://api.iconify.design/logos/elasticsearch.svg\",\n category: \"database\",\n },\n {\n id: \"db_cassandra\",\n title: \"Cassandra\",\n src: \"https://api.iconify.design/logos/cassandra.svg\",\n category: \"database\",\n },\n {\n id: \"db_couchdb\",\n title: \"Couchdb\",\n src: \"https://api.iconify.design/logos/couchdb.svg\",\n category: \"database\",\n },\n {\n id: \"db_neo4j\",\n title: \"Neo4j\",\n src: \"https://api.iconify.design/logos/neo4j.svg\",\n category: \"database\",\n },\n {\n id: \"db_influxdb\",\n title: \"Influxdb\",\n src: \"https://api.iconify.design/logos/influxdb.svg\",\n category: \"database\",\n },\n {\n id: \"db_rabbitmq\",\n title: \"Rabbitmq\",\n src: \"https://api.iconify.design/logos/rabbitmq.svg\",\n category: \"database\",\n },\n {\n id: \"db_kafka\",\n title: \"Kafka\",\n src: \"https://api.iconify.design/logos/kafka.svg\",\n category: \"database\",\n },\n {\n id: \"db_snowflake\",\n title: \"Snowflake\",\n src: \"https://api.iconify.design/logos/snowflake.svg\",\n category: \"database\",\n },\n {\n id: \"db_rocksdb\",\n title: \"Rocksdb\",\n src: \"https://api.iconify.design/logos/rocksdb.svg\",\n category: \"database\",\n },\n {\n id: \"db_leveldb\",\n title: \"Leveldb\",\n src: \"https://api.iconify.design/logos/leveldb.svg\",\n category: \"database\",\n },\n {\n id: \"db_planetscale\",\n title: \"Planetscale\",\n src: \"https://api.iconify.design/logos/planetscale.svg\",\n category: \"database\",\n },\n {\n id: \"db_supabase\",\n title: \"Supabase\",\n src: \"https://api.iconify.design/logos/supabase.svg\",\n category: \"database\",\n },\n {\n id: \"db_realm\",\n title: \"Realm\",\n src: \"https://api.iconify.design/logos/realm.svg\",\n category: \"database\",\n },\n {\n id: \"db_firebase\",\n title: \"Firebase\",\n src: \"https://api.iconify.design/logos/firebase.svg\",\n category: \"database\",\n },\n {\n id: \"db_meilisearch\",\n title: \"Meilisearch\",\n src: \"https://api.iconify.design/logos/meilisearch.svg\",\n category: \"database\",\n },\n {\n id: \"db_pinecone\",\n title: \"Pinecone\",\n src: \"https://api.iconify.design/logos/pinecone.svg\",\n category: \"database\",\n },\n {\n id: \"db_qdrant\",\n title: \"Qdrant\",\n src: \"https://api.iconify.design/logos/qdrant.svg\",\n category: \"database\",\n },\n {\n id: \"db_turso\",\n title: \"Turso\",\n src: \"https://cdn.simpleicons.org/turso/6366f1\",\n category: \"database\",\n },\n {\n id: \"db_memgraph\",\n title: \"Memgraph\",\n src: \"https://api.iconify.design/logos/memgraph.svg\",\n category: \"database\",\n },\n {\n id: \"db_aerospike\",\n title: \"Aerospike\",\n src: \"https://api.iconify.design/logos/aerospike.svg\",\n category: \"database\",\n },\n {\n id: \"db_arangodb\",\n title: \"Arangodb\",\n src: \"https://api.iconify.design/logos/arangodb.svg\",\n category: \"database\",\n },\n {\n id: \"db_opensearch\",\n title: \"Opensearch\",\n src: \"https://api.iconify.design/logos/opensearch.svg\",\n category: \"database\",\n },\n {\n id: \"db_vitess\",\n title: \"Vitess\",\n src: \"https://api.iconify.design/logos/vitess.svg\",\n category: \"database\",\n },\n {\n id: \"db_trino\",\n title: \"Trino\",\n src: \"https://cdn.simpleicons.org/trino/6366f1\",\n category: \"database\",\n },\n {\n id: \"db_presto\",\n title: \"Presto\",\n src: \"https://api.iconify.design/logos/presto.svg\",\n category: \"database\",\n },\n {\n id: \"db_duckdb\",\n title: \"Duckdb\",\n src: \"https://cdn.simpleicons.org/duckdb/6366f1\",\n category: \"database\",\n },\n {\n id: \"db_clickhouse\",\n title: \"Clickhouse\",\n src: \"https://cdn.simpleicons.org/clickhouse/6366f1\",\n category: \"database\",\n },\n {\n id: \"db_singlestore\",\n title: \"Singlestore\",\n src: \"https://api.iconify.design/logos/singlestore.svg\",\n category: \"database\",\n },\n ],\n },\n {\n category: \"language\",\n title: \"Programming Languages\",\n entries: [\n {\n id: \"lang_python\",\n title: \"Python\",\n src: \"https://api.iconify.design/devicon/python.svg\",\n category: \"language\",\n },\n {\n id: \"lang_javascript\",\n title: \"Javascript\",\n src: \"https://api.iconify.design/devicon/javascript.svg\",\n category: \"language\",\n },\n {\n id: \"lang_typescript\",\n title: \"Typescript\",\n src: \"https://api.iconify.design/devicon/typescript.svg\",\n category: \"language\",\n },\n {\n id: \"lang_go\",\n title: \"Go\",\n src: \"https://api.iconify.design/devicon/go.svg\",\n category: \"language\",\n },\n {\n id: \"lang_rust\",\n title: \"Rust\",\n src: \"https://api.iconify.design/devicon/rust.svg\",\n category: \"language\",\n },\n {\n id: \"lang_java\",\n title: \"Java\",\n src: \"https://api.iconify.design/devicon/java.svg\",\n category: \"language\",\n },\n {\n id: \"lang_ruby\",\n title: \"Ruby\",\n src: \"https://api.iconify.design/devicon/ruby.svg\",\n category: \"language\",\n },\n {\n id: \"lang_kotlin\",\n title: \"Kotlin\",\n src: \"https://api.iconify.design/devicon/kotlin.svg\",\n category: \"language\",\n },\n {\n id: \"lang_swift\",\n title: \"Swift\",\n src: \"https://api.iconify.design/devicon/swift.svg\",\n category: \"language\",\n },\n {\n id: \"lang_csharp\",\n title: \"Csharp\",\n src: \"https://api.iconify.design/devicon/csharp.svg\",\n category: \"language\",\n },\n {\n id: \"lang_cplusplus\",\n title: \"Cplusplus\",\n src: \"https://api.iconify.design/devicon/cplusplus.svg\",\n category: \"language\",\n },\n {\n id: \"lang_c\",\n title: \"C\",\n src: \"https://api.iconify.design/devicon/c.svg\",\n category: \"language\",\n },\n {\n id: \"lang_php\",\n title: \"Php\",\n src: \"https://api.iconify.design/devicon/php.svg\",\n category: \"language\",\n },\n {\n id: \"lang_elixir\",\n title: \"Elixir\",\n src: \"https://api.iconify.design/devicon/elixir.svg\",\n category: \"language\",\n },\n {\n id: \"lang_erlang\",\n title: \"Erlang\",\n src: \"https://api.iconify.design/devicon/erlang.svg\",\n category: \"language\",\n },\n {\n id: \"lang_scala\",\n title: \"Scala\",\n src: \"https://api.iconify.design/devicon/scala.svg\",\n category: \"language\",\n },\n {\n id: \"lang_haskell\",\n title: \"Haskell\",\n src: \"https://api.iconify.design/devicon/haskell.svg\",\n category: \"language\",\n },\n {\n id: \"lang_clojure\",\n title: \"Clojure\",\n src: \"https://api.iconify.design/devicon/clojure.svg\",\n category: \"language\",\n },\n {\n id: \"lang_dart\",\n title: \"Dart\",\n src: \"https://api.iconify.design/devicon/dart.svg\",\n category: \"language\",\n },\n {\n id: \"lang_lua\",\n title: \"Lua\",\n src: \"https://api.iconify.design/devicon/lua.svg\",\n category: \"language\",\n },\n {\n id: \"lang_r\",\n title: \"R\",\n src: \"https://api.iconify.design/devicon/r.svg\",\n category: \"language\",\n },\n {\n id: \"lang_julia\",\n title: \"Julia\",\n src: \"https://api.iconify.design/devicon/julia.svg\",\n category: \"language\",\n },\n {\n id: \"lang_crystal\",\n title: \"Crystal\",\n src: \"https://api.iconify.design/devicon/crystal.svg\",\n category: \"language\",\n },\n {\n id: \"lang_nim\",\n title: \"Nim\",\n src: \"https://api.iconify.design/devicon/nim.svg\",\n category: \"language\",\n },\n {\n id: \"lang_zig\",\n title: \"Zig\",\n src: \"https://api.iconify.design/devicon/zig.svg\",\n category: \"language\",\n },\n {\n id: \"lang_ocaml\",\n title: \"Ocaml\",\n src: \"https://api.iconify.design/devicon/ocaml.svg\",\n category: \"language\",\n },\n {\n id: \"lang_fsharp\",\n title: \"Fsharp\",\n src: \"https://api.iconify.design/devicon/fsharp.svg\",\n category: \"language\",\n },\n {\n id: \"lang_perl\",\n title: \"Perl\",\n src: \"https://api.iconify.design/devicon/perl.svg\",\n category: \"language\",\n },\n {\n id: \"lang_powershell\",\n title: \"Powershell\",\n src: \"https://api.iconify.design/devicon/powershell.svg\",\n category: \"language\",\n },\n {\n id: \"lang_bash\",\n title: \"Bash\",\n src: \"https://api.iconify.design/devicon/bash.svg\",\n category: \"language\",\n },\n {\n id: \"lang_solidity\",\n title: \"Solidity\",\n src: \"https://api.iconify.design/devicon/solidity.svg\",\n category: \"language\",\n },\n ],\n },\n {\n category: \"frontend\",\n title: \"Frontend Frameworks\",\n entries: [\n {\n id: \"fe_react\",\n title: \"React\",\n src: \"https://api.iconify.design/logos/react.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_vuejs\",\n title: \"Vuejs\",\n src: \"https://api.iconify.design/devicon/vuejs.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_svelte\",\n title: \"Svelte\",\n src: \"https://api.iconify.design/logos/svelte.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_angular\",\n title: \"Angular\",\n src: \"https://api.iconify.design/logos/angular.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_nextjs\",\n title: \"Nextjs\",\n src: \"https://api.iconify.design/logos/nextjs.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_nuxt\",\n title: \"Nuxt\",\n src: \"https://api.iconify.design/logos/nuxt.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_remix\",\n title: \"Remix\",\n src: \"https://api.iconify.design/logos/remix.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_solidjs\",\n title: \"Solidjs\",\n src: \"https://api.iconify.design/logos/solidjs.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_astro\",\n title: \"Astro\",\n src: \"https://api.iconify.design/logos/astro.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_qwik\",\n title: \"Qwik\",\n src: \"https://api.iconify.design/logos/qwik.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_preact\",\n title: \"Preact\",\n src: \"https://api.iconify.design/logos/preact.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_lit\",\n title: \"Lit\",\n src: \"https://api.iconify.design/logos/lit.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_ember\",\n title: \"Ember\",\n src: \"https://api.iconify.design/logos/ember.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_jquery\",\n title: \"Jquery\",\n src: \"https://api.iconify.design/logos/jquery.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_backbone\",\n title: \"Backbone\",\n src: \"https://api.iconify.design/logos/backbone.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_alpinejs\",\n title: \"Alpinejs\",\n src: \"https://api.iconify.design/logos/alpinejs.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_htmx\",\n title: \"Htmx\",\n src: \"https://api.iconify.design/logos/htmx.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_tailwindcss\",\n title: \"Tailwindcss\",\n src: \"https://api.iconify.design/logos/tailwindcss.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_bootstrap\",\n title: \"Bootstrap\",\n src: \"https://api.iconify.design/logos/bootstrap.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_materialui\",\n title: \"Materialui\",\n src: \"https://api.iconify.design/devicon/materialui.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_chakraui\",\n title: \"Chakraui\",\n src: \"https://api.iconify.design/devicon/chakraui.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_mui\",\n title: \"Mui\",\n src: \"https://cdn.simpleicons.org/mui/6366f1\",\n category: \"frontend\",\n },\n {\n id: \"fe_bulma\",\n title: \"Bulma\",\n src: \"https://api.iconify.design/logos/bulma.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_sass\",\n title: \"Sass\",\n src: \"https://api.iconify.design/logos/sass.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_less\",\n title: \"Less\",\n src: \"https://api.iconify.design/logos/less.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_stylus\",\n title: \"Stylus\",\n src: \"https://api.iconify.design/logos/stylus.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_redux\",\n title: \"Redux\",\n src: \"https://api.iconify.design/logos/redux.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_mobx\",\n title: \"Mobx\",\n src: \"https://api.iconify.design/logos/mobx.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_zustand\",\n title: \"Zustand\",\n src: \"https://api.iconify.design/devicon/zustand.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_jotai\",\n title: \"Jotai\",\n src: \"https://api.iconify.design/logos/jotai.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_recoil\",\n title: \"Recoil\",\n src: \"https://api.iconify.design/logos/recoil.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_pinia\",\n title: \"Pinia\",\n src: \"https://api.iconify.design/logos/pinia.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_react-query\",\n title: \"React Query\",\n src: \"https://api.iconify.design/logos/react-query.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_react-router\",\n title: \"React Router\",\n src: \"https://api.iconify.design/logos/react-router.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_electron\",\n title: \"Electron\",\n src: \"https://api.iconify.design/logos/electron.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_tauri\",\n title: \"Tauri\",\n src: \"https://api.iconify.design/logos/tauri.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_flutter\",\n title: \"Flutter\",\n src: \"https://api.iconify.design/logos/flutter.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_ionic\",\n title: \"Ionic\",\n src: \"https://api.iconify.design/logos/ionic.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_capacitor\",\n title: \"Capacitor\",\n src: \"https://api.iconify.design/devicon/capacitor.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_expo\",\n title: \"Expo\",\n src: \"https://api.iconify.design/logos/expo.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_storybook\",\n title: \"Storybook\",\n src: \"https://api.iconify.design/logos/storybook.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_vite\",\n title: \"Vite\",\n src: \"https://api.iconify.design/logos/vite.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_webpack\",\n title: \"Webpack\",\n src: \"https://api.iconify.design/logos/webpack.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_rollup\",\n title: \"Rollup\",\n src: \"https://api.iconify.design/devicon/rollup.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_parcel\",\n title: \"Parcel\",\n src: \"https://api.iconify.design/logos/parcel.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_esbuild\",\n title: \"Esbuild\",\n src: \"https://api.iconify.design/logos/esbuild.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_turborepo\",\n title: \"Turborepo\",\n src: \"https://api.iconify.design/logos/turborepo.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_nx\",\n title: \"Nx\",\n src: \"https://api.iconify.design/logos/nx.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_prettier\",\n title: \"Prettier\",\n src: \"https://api.iconify.design/logos/prettier.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_eslint\",\n title: \"Eslint\",\n src: \"https://api.iconify.design/logos/eslint.svg\",\n category: \"frontend\",\n },\n {\n id: \"fe_babel\",\n title: \"Babel\",\n src: \"https://api.iconify.design/logos/babel.svg\",\n category: \"frontend\",\n },\n ],\n },\n {\n category: \"backend\",\n title: \"Backend / Infra\",\n entries: [\n {\n id: \"be_nodejs\",\n title: \"Nodejs\",\n src: \"https://api.iconify.design/logos/nodejs.svg\",\n category: \"backend\",\n },\n {\n id: \"be_deno\",\n title: \"Deno\",\n src: \"https://api.iconify.design/logos/deno.svg\",\n category: \"backend\",\n },\n {\n id: \"be_bun\",\n title: \"Bun\",\n src: \"https://api.iconify.design/logos/bun.svg\",\n category: \"backend\",\n },\n {\n id: \"be_django\",\n title: \"Django\",\n src: \"https://api.iconify.design/logos/django.svg\",\n category: \"backend\",\n },\n {\n id: \"be_flask\",\n title: \"Flask\",\n src: \"https://api.iconify.design/logos/flask.svg\",\n category: \"backend\",\n },\n {\n id: \"be_fastapi\",\n title: \"Fastapi\",\n src: \"https://api.iconify.design/logos/fastapi.svg\",\n category: \"backend\",\n },\n {\n id: \"be_rails\",\n title: \"Rails\",\n src: \"https://api.iconify.design/logos/rails.svg\",\n category: \"backend\",\n },\n {\n id: \"be_spring\",\n title: \"Spring\",\n src: \"https://api.iconify.design/logos/spring.svg\",\n category: \"backend\",\n },\n {\n id: \"be_laravel\",\n title: \"Laravel\",\n src: \"https://api.iconify.design/logos/laravel.svg\",\n category: \"backend\",\n },\n {\n id: \"be_symfony\",\n title: \"Symfony\",\n src: \"https://api.iconify.design/logos/symfony.svg\",\n category: \"backend\",\n },\n {\n id: \"be_express\",\n title: \"Express\",\n src: \"https://api.iconify.design/logos/express.svg\",\n category: \"backend\",\n },\n {\n id: \"be_nestjs\",\n title: \"Nestjs\",\n src: \"https://api.iconify.design/logos/nestjs.svg\",\n category: \"backend\",\n },\n {\n id: \"be_koa\",\n title: \"Koa\",\n src: \"https://api.iconify.design/logos/koa.svg\",\n category: \"backend\",\n },\n {\n id: \"be_fastify\",\n title: \"Fastify\",\n src: \"https://api.iconify.design/logos/fastify.svg\",\n category: \"backend\",\n },\n {\n id: \"be_phoenix\",\n title: \"Phoenix\",\n src: \"https://api.iconify.design/logos/phoenix.svg\",\n category: \"backend\",\n },\n {\n id: \"be_gin\",\n title: \"Gin\",\n src: \"https://api.iconify.design/logos/gin.svg\",\n category: \"backend\",\n },\n {\n id: \"be_fiber\",\n title: \"Fiber\",\n src: \"https://api.iconify.design/devicon/fiber.svg\",\n category: \"backend\",\n },\n {\n id: \"be_actix\",\n title: \"Actix\",\n src: \"https://cdn.simpleicons.org/actix/6366f1\",\n category: \"backend\",\n },\n {\n id: \"be_rocket\",\n title: \"Rocket\",\n src: \"https://cdn.simpleicons.org/rocket/6366f1\",\n category: \"backend\",\n },\n {\n id: \"be_graphql\",\n title: \"Graphql\",\n src: \"https://api.iconify.design/logos/graphql.svg\",\n category: \"backend\",\n },\n {\n id: \"be_grpc\",\n title: \"Grpc\",\n src: \"https://api.iconify.design/logos/grpc.svg\",\n category: \"backend\",\n },\n {\n id: \"be_oauth\",\n title: \"Oauth\",\n src: \"https://api.iconify.design/logos/oauth.svg\",\n category: \"backend\",\n },\n {\n id: \"be_jwt\",\n title: \"Jwt\",\n src: \"https://api.iconify.design/logos/jwt.svg\",\n category: \"backend\",\n },\n {\n id: \"be_redis\",\n title: \"Redis\",\n src: \"https://api.iconify.design/logos/redis.svg\",\n category: \"backend\",\n },\n {\n id: \"be_rabbitmq\",\n title: \"Rabbitmq\",\n src: \"https://api.iconify.design/logos/rabbitmq.svg\",\n category: \"backend\",\n },\n {\n id: \"be_memcached\",\n title: \"Memcached\",\n src: \"https://api.iconify.design/logos/memcached.svg\",\n category: \"backend\",\n },\n {\n id: \"be_nginx\",\n title: \"Nginx\",\n src: \"https://api.iconify.design/logos/nginx.svg\",\n category: \"backend\",\n },\n {\n id: \"be_apache\",\n title: \"Apache\",\n src: \"https://api.iconify.design/logos/apache.svg\",\n category: \"backend\",\n },\n {\n id: \"be_caddy\",\n title: \"Caddy\",\n src: \"https://cdn.simpleicons.org/caddy/6366f1\",\n category: \"backend\",\n },\n {\n id: \"be_envoy\",\n title: \"Envoy\",\n src: \"https://api.iconify.design/logos/envoy.svg\",\n category: \"backend\",\n },\n {\n id: \"be_jenkins\",\n title: \"Jenkins\",\n src: \"https://api.iconify.design/logos/jenkins.svg\",\n category: \"backend\",\n },\n {\n id: \"be_gitlab\",\n title: \"Gitlab\",\n src: \"https://api.iconify.design/logos/gitlab.svg\",\n category: \"backend\",\n },\n {\n id: \"be_github\",\n title: \"Github\",\n src: \"https://api.iconify.design/logos/github.svg\",\n category: \"backend\",\n },\n {\n id: \"be_githubactions\",\n title: \"Githubactions\",\n src: \"https://api.iconify.design/devicon/githubactions.svg\",\n category: \"backend\",\n },\n {\n id: \"be_circleci\",\n title: \"Circleci\",\n src: \"https://api.iconify.design/logos/circleci.svg\",\n category: \"backend\",\n },\n {\n id: \"be_travisci\",\n title: \"Travisci\",\n src: \"https://cdn.simpleicons.org/travisci/6366f1\",\n category: \"backend\",\n },\n {\n id: \"be_codecov\",\n title: \"Codecov\",\n src: \"https://api.iconify.design/logos/codecov.svg\",\n category: \"backend\",\n },\n {\n id: \"be_sonarqube\",\n title: \"Sonarqube\",\n src: \"https://api.iconify.design/logos/sonarqube.svg\",\n category: \"backend\",\n },\n {\n id: \"be_sentry\",\n title: \"Sentry\",\n src: \"https://api.iconify.design/logos/sentry.svg\",\n category: \"backend\",\n },\n {\n id: \"be_kibana\",\n title: \"Kibana\",\n src: \"https://api.iconify.design/logos/kibana.svg\",\n category: \"backend\",\n },\n {\n id: \"be_grafana\",\n title: \"Grafana\",\n src: \"https://api.iconify.design/logos/grafana.svg\",\n category: \"backend\",\n },\n {\n id: \"be_prometheus\",\n title: \"Prometheus\",\n src: \"https://api.iconify.design/logos/prometheus.svg\",\n category: \"backend\",\n },\n {\n id: \"be_opentelemetry\",\n title: \"Opentelemetry\",\n src: \"https://api.iconify.design/logos/opentelemetry.svg\",\n category: \"backend\",\n },\n {\n id: \"be_jaeger\",\n title: \"Jaeger\",\n src: \"https://cdn.simpleicons.org/jaeger/6366f1\",\n category: \"backend\",\n },\n ],\n },\n {\n category: \"tool\",\n title: \"Dev Tools\",\n entries: [\n {\n id: \"tool_docker\",\n title: \"Docker\",\n src: \"https://api.iconify.design/logos/docker.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_kubernetes\",\n title: \"Kubernetes\",\n src: \"https://api.iconify.design/logos/kubernetes.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_helm\",\n title: \"Helm\",\n src: \"https://api.iconify.design/logos/helm.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_terraform\",\n title: \"Terraform\",\n src: \"https://api.iconify.design/logos/terraform.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_ansible\",\n title: \"Ansible\",\n src: \"https://api.iconify.design/logos/ansible.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_puppet\",\n title: \"Puppet\",\n src: \"https://api.iconify.design/logos/puppet.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_chef\",\n title: \"Chef\",\n src: \"https://api.iconify.design/logos/chef.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_vagrant\",\n title: \"Vagrant\",\n src: \"https://api.iconify.design/logos/vagrant.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_consul\",\n title: \"Consul\",\n src: \"https://api.iconify.design/logos/consul.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_vault\",\n title: \"Vault\",\n src: \"https://api.iconify.design/logos/vault.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_nomad\",\n title: \"Nomad\",\n src: \"https://api.iconify.design/logos/nomad.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_packer\",\n title: \"Packer\",\n src: \"https://api.iconify.design/logos/packer.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_gitlab\",\n title: \"Gitlab\",\n src: \"https://api.iconify.design/logos/gitlab.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_github\",\n title: \"Github\",\n src: \"https://api.iconify.design/logos/github.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_github-actions\",\n title: \"Github Actions\",\n src: \"https://api.iconify.design/logos/github-actions.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_github-copilot\",\n title: \"Github Copilot\",\n src: \"https://api.iconify.design/logos/github-copilot.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_git\",\n title: \"Git\",\n src: \"https://api.iconify.design/logos/git.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_mercurial\",\n title: \"Mercurial\",\n src: \"https://api.iconify.design/logos/mercurial.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_subversion\",\n title: \"Subversion\",\n src: \"https://api.iconify.design/logos/subversion.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_jira\",\n title: \"Jira\",\n src: \"https://api.iconify.design/logos/jira.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_confluence\",\n title: \"Confluence\",\n src: \"https://api.iconify.design/logos/confluence.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_slack\",\n title: \"Slack\",\n src: \"https://api.iconify.design/logos/slack.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_discord\",\n title: \"Discord\",\n src: \"https://api.iconify.design/logos/discord.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_telegram\",\n title: \"Telegram\",\n src: \"https://api.iconify.design/logos/telegram.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_figma\",\n title: \"Figma\",\n src: \"https://api.iconify.design/logos/figma.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_sketch\",\n title: \"Sketch\",\n src: \"https://api.iconify.design/logos/sketch.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_invision\",\n title: \"Invision\",\n src: \"https://api.iconify.design/logos/invision.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_zeplin\",\n title: \"Zeplin\",\n src: \"https://api.iconify.design/logos/zeplin.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_storybook\",\n title: \"Storybook\",\n src: \"https://api.iconify.design/logos/storybook.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_postman\",\n title: \"Postman\",\n src: \"https://api.iconify.design/logos/postman.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_insomnia\",\n title: \"Insomnia\",\n src: \"https://api.iconify.design/logos/insomnia.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_httpie\",\n title: \"Httpie\",\n src: \"https://api.iconify.design/logos/httpie.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_curl\",\n title: \"Curl\",\n src: \"https://api.iconify.design/logos/curl.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_visual-studio\",\n title: \"Visual Studio\",\n src: \"https://api.iconify.design/logos/visual-studio.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_visual-studio-code\",\n title: \"Visual Studio Code\",\n src: \"https://api.iconify.design/logos/visual-studio-code.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_sublimetext\",\n title: \"Sublimetext\",\n src: \"https://api.iconify.design/logos/sublimetext.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_atom\",\n title: \"Atom\",\n src: \"https://api.iconify.design/logos/atom.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_intellij-idea\",\n title: \"Intellij Idea\",\n src: \"https://api.iconify.design/logos/intellij-idea.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_webstorm\",\n title: \"Webstorm\",\n src: \"https://api.iconify.design/logos/webstorm.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_pycharm\",\n title: \"Pycharm\",\n src: \"https://api.iconify.design/logos/pycharm.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_phpstorm\",\n title: \"Phpstorm\",\n src: \"https://api.iconify.design/logos/phpstorm.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_goland\",\n title: \"Goland\",\n src: \"https://api.iconify.design/logos/goland.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_rider\",\n title: \"Rider\",\n src: \"https://api.iconify.design/logos/rider.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_datagrip\",\n title: \"Datagrip\",\n src: \"https://api.iconify.design/logos/datagrip.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_rubymine\",\n title: \"Rubymine\",\n src: \"https://api.iconify.design/logos/rubymine.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_vim\",\n title: \"Vim\",\n src: \"https://api.iconify.design/logos/vim.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_neovim\",\n title: \"Neovim\",\n src: \"https://api.iconify.design/logos/neovim.svg\",\n category: \"tool\",\n },\n {\n id: \"tool_emacs\",\n title: \"Emacs\",\n src: \"https://api.iconify.design/logos/emacs.svg\",\n category: \"tool\",\n },\n ],\n },\n {\n category: \"network\",\n title: \"Network / Infrastructure\",\n entries: [\n {\n id: \"mdi_router-wireless\",\n title: \"Router Wireless\",\n src: \"https://api.iconify.design/mdi/router-wireless.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_router-network\",\n title: \"Router Network\",\n src: \"https://api.iconify.design/mdi/router-network.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_router\",\n title: \"Router\",\n src: \"https://api.iconify.design/mdi/router.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_server\",\n title: \"Server\",\n src: \"https://api.iconify.design/mdi/server.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_server-network\",\n title: \"Server Network\",\n src: \"https://api.iconify.design/mdi/server-network.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_server-network-off\",\n title: \"Server Network Off\",\n src: \"https://api.iconify.design/mdi/server-network-off.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_server-security\",\n title: \"Server Security\",\n src: \"https://api.iconify.design/mdi/server-security.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud\",\n title: \"Cloud\",\n src: \"https://api.iconify.design/mdi/cloud.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-outline\",\n title: \"Cloud Outline\",\n src: \"https://api.iconify.design/mdi/cloud-outline.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-circle\",\n title: \"Cloud Circle\",\n src: \"https://api.iconify.design/mdi/cloud-circle.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-search\",\n title: \"Cloud Search\",\n src: \"https://api.iconify.design/mdi/cloud-search.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-sync\",\n title: \"Cloud Sync\",\n src: \"https://api.iconify.design/mdi/cloud-sync.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-upload\",\n title: \"Cloud Upload\",\n src: \"https://api.iconify.design/mdi/cloud-upload.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-download\",\n title: \"Cloud Download\",\n src: \"https://api.iconify.design/mdi/cloud-download.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-print\",\n title: \"Cloud Print\",\n src: \"https://api.iconify.design/mdi/cloud-print.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_web\",\n title: \"Web\",\n src: \"https://api.iconify.design/mdi/web.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_web-box\",\n title: \"Web Box\",\n src: \"https://api.iconify.design/mdi/web-box.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cellphone\",\n title: \"Cellphone\",\n src: \"https://api.iconify.design/mdi/cellphone.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cellphone-cog\",\n title: \"Cellphone Cog\",\n src: \"https://api.iconify.design/mdi/cellphone-cog.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_wifi\",\n title: \"Wifi\",\n src: \"https://api.iconify.design/mdi/wifi.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_wifi-strength-4\",\n title: \"Wifi Strength 4\",\n src: \"https://api.iconify.design/mdi/wifi-strength-4.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_lan\",\n title: \"Lan\",\n src: \"https://api.iconify.design/mdi/lan.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_lan-connect\",\n title: \"Lan Connect\",\n src: \"https://api.iconify.design/mdi/lan-connect.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_lan-disconnect\",\n title: \"Lan Disconnect\",\n src: \"https://api.iconify.design/mdi/lan-disconnect.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_ethernet\",\n title: \"Ethernet\",\n src: \"https://api.iconify.design/mdi/ethernet.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_ethernet-cable\",\n title: \"Ethernet Cable\",\n src: \"https://api.iconify.design/mdi/ethernet-cable.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_vpn\",\n title: \"Vpn\",\n src: \"https://api.iconify.design/mdi/vpn.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_security-network\",\n title: \"Security Network\",\n src: \"https://api.iconify.design/mdi/security-network.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_monitor-dashboard\",\n title: \"Monitor Dashboard\",\n src: \"https://api.iconify.design/mdi/monitor-dashboard.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_switch\",\n title: \"Switch\",\n src: \"https://api.iconify.design/mdi/switch.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_access-point\",\n title: \"Access Point\",\n src: \"https://api.iconify.design/mdi/access-point.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_access-point-network\",\n title: \"Access Point Network\",\n src: \"https://api.iconify.design/mdi/access-point-network.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_satellite-uplink\",\n title: \"Satellite Uplink\",\n src: \"https://api.iconify.design/mdi/satellite-uplink.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_antenna\",\n title: \"Antenna\",\n src: \"https://api.iconify.design/mdi/antenna.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_gauge\",\n title: \"Gauge\",\n src: \"https://api.iconify.design/mdi/gauge.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_speedometer\",\n title: \"Speedometer\",\n src: \"https://api.iconify.design/mdi/speedometer.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_tower-beach\",\n title: \"Tower Beach\",\n src: \"https://api.iconify.design/mdi/tower-beach.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_broadcast\",\n title: \"Broadcast\",\n src: \"https://api.iconify.design/mdi/broadcast.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_pulse\",\n title: \"Pulse\",\n src: \"https://api.iconify.design/mdi/pulse.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_serial-port\",\n title: \"Serial Port\",\n src: \"https://api.iconify.design/mdi/serial-port.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_usb-port\",\n title: \"Usb Port\",\n src: \"https://api.iconify.design/mdi/usb-port.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_transmission-tower\",\n title: \"Transmission Tower\",\n src: \"https://api.iconify.design/mdi/transmission-tower.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_satellite\",\n title: \"Satellite\",\n src: \"https://api.iconify.design/mdi/satellite.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_satellite-variant\",\n title: \"Satellite Variant\",\n src: \"https://api.iconify.design/mdi/satellite-variant.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_rss\",\n title: \"Rss\",\n src: \"https://api.iconify.design/mdi/rss.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_web-clock\",\n title: \"Web Clock\",\n src: \"https://api.iconify.design/mdi/web-clock.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_web-cancel\",\n title: \"Web Cancel\",\n src: \"https://api.iconify.design/mdi/web-cancel.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_dns\",\n title: \"Dns\",\n src: \"https://api.iconify.design/mdi/dns.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_dns-outline\",\n title: \"Dns Outline\",\n src: \"https://api.iconify.design/mdi/dns-outline.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-import\",\n title: \"Database Import\",\n src: \"https://api.iconify.design/mdi/database-import.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-export\",\n title: \"Database Export\",\n src: \"https://api.iconify.design/mdi/database-export.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-search\",\n title: \"Database Search\",\n src: \"https://api.iconify.design/mdi/database-search.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-clock\",\n title: \"Database Clock\",\n src: \"https://api.iconify.design/mdi/database-clock.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-cog\",\n title: \"Database Cog\",\n src: \"https://api.iconify.design/mdi/database-cog.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-edit\",\n title: \"Database Edit\",\n src: \"https://api.iconify.design/mdi/database-edit.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-eye\",\n title: \"Database Eye\",\n src: \"https://api.iconify.design/mdi/database-eye.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-lock\",\n title: \"Database Lock\",\n src: \"https://api.iconify.design/mdi/database-lock.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-minus\",\n title: \"Database Minus\",\n src: \"https://api.iconify.design/mdi/database-minus.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-off\",\n title: \"Database Off\",\n src: \"https://api.iconify.design/mdi/database-off.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-outline\",\n title: \"Database Outline\",\n src: \"https://api.iconify.design/mdi/database-outline.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-plus\",\n title: \"Database Plus\",\n src: \"https://api.iconify.design/mdi/database-plus.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-refresh\",\n title: \"Database Refresh\",\n src: \"https://api.iconify.design/mdi/database-refresh.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-remove\",\n title: \"Database Remove\",\n src: \"https://api.iconify.design/mdi/database-remove.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-settings\",\n title: \"Database Settings\",\n src: \"https://api.iconify.design/mdi/database-settings.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_database-sync\",\n title: \"Database Sync\",\n src: \"https://api.iconify.design/mdi/database-sync.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-question\",\n title: \"Cloud Question\",\n src: \"https://api.iconify.design/mdi/cloud-question.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-tags\",\n title: \"Cloud Tags\",\n src: \"https://api.iconify.design/mdi/cloud-tags.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-key\",\n title: \"Cloud Key\",\n src: \"https://api.iconify.design/mdi/cloud-key.svg?color=%236366f1\",\n category: \"network\",\n },\n {\n id: \"mdi_cloud-lock\",\n title: \"Cloud Lock\",\n src: \"https://api.iconify.design/mdi/cloud-lock.svg?color=%236366f1\",\n category: \"network\",\n },\n ],\n },\n {\n category: \"erd\",\n title: \"ERD / Schema\",\n entries: [\n {\n id: \"mdi_table\",\n title: \"Table\",\n src: \"https://api.iconify.design/mdi/table.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-large\",\n title: \"Table Large\",\n src: \"https://api.iconify.design/mdi/table-large.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-search\",\n title: \"Table Search\",\n src: \"https://api.iconify.design/mdi/table-search.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-plus\",\n title: \"Table Plus\",\n src: \"https://api.iconify.design/mdi/table-plus.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-minus\",\n title: \"Table Minus\",\n src: \"https://api.iconify.design/mdi/table-minus.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-edit\",\n title: \"Table Edit\",\n src: \"https://api.iconify.design/mdi/table-edit.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-cog\",\n title: \"Table Cog\",\n src: \"https://api.iconify.design/mdi/table-cog.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-row\",\n title: \"Table Row\",\n src: \"https://api.iconify.design/mdi/table-row.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-column\",\n title: \"Table Column\",\n src: \"https://api.iconify.design/mdi/table-column.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-merge-cells\",\n title: \"Table Merge Cells\",\n src: \"https://api.iconify.design/mdi/table-merge-cells.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-split-cell\",\n title: \"Table Split Cell\",\n src: \"https://api.iconify.design/mdi/table-split-cell.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_table-heart\",\n title: \"Table Heart\",\n src: \"https://api.iconify.design/mdi/table-heart.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_key\",\n title: \"Key\",\n src: \"https://api.iconify.design/mdi/key.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_key-variant\",\n title: \"Key Variant\",\n src: \"https://api.iconify.design/mdi/key-variant.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_key-outline\",\n title: \"Key Outline\",\n src: \"https://api.iconify.design/mdi/key-outline.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_key-link\",\n title: \"Key Link\",\n src: \"https://api.iconify.design/mdi/key-link.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_key-arrow-right\",\n title: \"Key Arrow Right\",\n src: \"https://api.iconify.design/mdi/key-arrow-right.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_key-chain\",\n title: \"Key Chain\",\n src: \"https://api.iconify.design/mdi/key-chain.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_key-chain-variant\",\n title: \"Key Chain Variant\",\n src: \"https://api.iconify.design/mdi/key-chain-variant.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-many-to-many\",\n title: \"Relation Many To Many\",\n src: \"https://api.iconify.design/mdi/relation-many-to-many.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-many-to-one\",\n title: \"Relation Many To One\",\n src: \"https://api.iconify.design/mdi/relation-many-to-one.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-many-to-zero-or-one\",\n title: \"Relation Many To Zero Or One\",\n src: \"https://api.iconify.design/mdi/relation-many-to-zero-or-one.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-many-to-zero-or-many\",\n title: \"Relation Many To Zero Or Many\",\n src: \"https://api.iconify.design/mdi/relation-many-to-zero-or-many.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-one-to-many\",\n title: \"Relation One To Many\",\n src: \"https://api.iconify.design/mdi/relation-one-to-many.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-one-to-one\",\n title: \"Relation One To One\",\n src: \"https://api.iconify.design/mdi/relation-one-to-one.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-one-to-zero-or-many\",\n title: \"Relation One To Zero Or Many\",\n src: \"https://api.iconify.design/mdi/relation-one-to-zero-or-many.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-one-to-zero-or-one\",\n title: \"Relation One To Zero Or One\",\n src: \"https://api.iconify.design/mdi/relation-one-to-zero-or-one.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-only-one-to-many\",\n title: \"Relation Only One To Many\",\n src: \"https://api.iconify.design/mdi/relation-only-one-to-many.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-only-one-to-one\",\n title: \"Relation Only One To One\",\n src: \"https://api.iconify.design/mdi/relation-only-one-to-one.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-only-one-to-zero-or-one\",\n title: \"Relation Only One To Zero Or One\",\n src: \"https://api.iconify.design/mdi/relation-only-one-to-zero-or-one.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-zero-or-one-to-one\",\n title: \"Relation Zero Or One To One\",\n src: \"https://api.iconify.design/mdi/relation-zero-or-one-to-one.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-zero-or-many-to-many\",\n title: \"Relation Zero Or Many To Many\",\n src: \"https://api.iconify.design/mdi/relation-zero-or-many-to-many.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-zero-or-many-to-one\",\n title: \"Relation Zero Or Many To One\",\n src: \"https://api.iconify.design/mdi/relation-zero-or-many-to-one.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-zero-or-many-to-zero-or-many\",\n title: \"Relation Zero Or Many To Zero Or Many\",\n src: \"https://api.iconify.design/mdi/relation-zero-or-many-to-zero-or-many.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-zero-or-many-to-zero-or-one\",\n title: \"Relation Zero Or Many To Zero Or One\",\n src: \"https://api.iconify.design/mdi/relation-zero-or-many-to-zero-or-one.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-zero-or-one-to-many\",\n title: \"Relation Zero Or One To Many\",\n src: \"https://api.iconify.design/mdi/relation-zero-or-one-to-many.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-zero-or-one-to-zero-or-many\",\n title: \"Relation Zero Or One To Zero Or Many\",\n src: \"https://api.iconify.design/mdi/relation-zero-or-one-to-zero-or-many.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_relation-zero-or-one-to-zero-or-one\",\n title: \"Relation Zero Or One To Zero Or One\",\n src: \"https://api.iconify.design/mdi/relation-zero-or-one-to-zero-or-one.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_eye\",\n title: \"Eye\",\n src: \"https://api.iconify.design/mdi/eye.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_eye-off\",\n title: \"Eye Off\",\n src: \"https://api.iconify.design/mdi/eye-off.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_magnify\",\n title: \"Magnify\",\n src: \"https://api.iconify.design/mdi/magnify.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_database\",\n title: \"Database\",\n src: \"https://api.iconify.design/mdi/database.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_database-outline\",\n title: \"Database Outline\",\n src: \"https://api.iconify.design/mdi/database-outline.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_box\",\n title: \"Box\",\n src: \"https://api.iconify.design/mdi/box.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_box-cutter\",\n title: \"Box Cutter\",\n src: \"https://api.iconify.design/mdi/box-cutter.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_cube-outline\",\n title: \"Cube Outline\",\n src: \"https://api.iconify.design/mdi/cube-outline.svg?color=%236366f1\",\n category: \"erd\",\n },\n {\n id: \"mdi_cube\",\n title: \"Cube\",\n src: \"https://api.iconify.design/mdi/cube.svg?color=%236366f1\",\n category: \"erd\",\n },\n ],\n },\n {\n category: \"arrow\",\n title: \"Arrows\",\n entries: [\n {\n id: \"mdi_arrow-up\",\n title: \"Arrow Up\",\n src: \"https://api.iconify.design/mdi/arrow-up.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-down\",\n title: \"Arrow Down\",\n src: \"https://api.iconify.design/mdi/arrow-down.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-left\",\n title: \"Arrow Left\",\n src: \"https://api.iconify.design/mdi/arrow-left.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-right\",\n title: \"Arrow Right\",\n src: \"https://api.iconify.design/mdi/arrow-right.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-up-bold\",\n title: \"Arrow Up Bold\",\n src: \"https://api.iconify.design/mdi/arrow-up-bold.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-down-bold\",\n title: \"Arrow Down Bold\",\n src: \"https://api.iconify.design/mdi/arrow-down-bold.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-left-bold\",\n title: \"Arrow Left Bold\",\n src: \"https://api.iconify.design/mdi/arrow-left-bold.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-right-bold\",\n title: \"Arrow Right Bold\",\n src: \"https://api.iconify.design/mdi/arrow-right-bold.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-top-left\",\n title: \"Arrow Top Left\",\n src: \"https://api.iconify.design/mdi/arrow-top-left.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-top-right\",\n title: \"Arrow Top Right\",\n src: \"https://api.iconify.design/mdi/arrow-top-right.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-bottom-left\",\n title: \"Arrow Bottom Left\",\n src: \"https://api.iconify.design/mdi/arrow-bottom-left.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-bottom-right\",\n title: \"Arrow Bottom Right\",\n src: \"https://api.iconify.design/mdi/arrow-bottom-right.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-up-thin\",\n title: \"Arrow Up Thin\",\n src: \"https://api.iconify.design/mdi/arrow-up-thin.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-down-thin\",\n title: \"Arrow Down Thin\",\n src: \"https://api.iconify.design/mdi/arrow-down-thin.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-left-thin\",\n title: \"Arrow Left Thin\",\n src: \"https://api.iconify.design/mdi/arrow-left-thin.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-right-thin\",\n title: \"Arrow Right Thin\",\n src: \"https://api.iconify.design/mdi/arrow-right-thin.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-decision\",\n title: \"Arrow Decision\",\n src: \"https://api.iconify.design/mdi/arrow-decision.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-decision-auto\",\n title: \"Arrow Decision Auto\",\n src: \"https://api.iconify.design/mdi/arrow-decision-auto.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-collapse\",\n title: \"Arrow Collapse\",\n src: \"https://api.iconify.design/mdi/arrow-collapse.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-expand\",\n title: \"Arrow Expand\",\n src: \"https://api.iconify.design/mdi/arrow-expand.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-all\",\n title: \"Arrow All\",\n src: \"https://api.iconify.design/mdi/arrow-all.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-left-right\",\n title: \"Arrow Left Right\",\n src: \"https://api.iconify.design/mdi/arrow-left-right.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-up-down\",\n title: \"Arrow Up Down\",\n src: \"https://api.iconify.design/mdi/arrow-up-down.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-left-right-bold\",\n title: \"Arrow Left Right Bold\",\n src: \"https://api.iconify.design/mdi/arrow-left-right-bold.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-up-down-bold\",\n title: \"Arrow Up Down Bold\",\n src: \"https://api.iconify.design/mdi/arrow-up-down-bold.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-right-thick\",\n title: \"Arrow Right Thick\",\n src: \"https://api.iconify.design/mdi/arrow-right-thick.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-left-thick\",\n title: \"Arrow Left Thick\",\n src: \"https://api.iconify.design/mdi/arrow-left-thick.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-up-thick\",\n title: \"Arrow Up Thick\",\n src: \"https://api.iconify.design/mdi/arrow-up-thick.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-down-thick\",\n title: \"Arrow Down Thick\",\n src: \"https://api.iconify.design/mdi/arrow-down-thick.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-u-down-left\",\n title: \"Arrow U Down Left\",\n src: \"https://api.iconify.design/mdi/arrow-u-down-left.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-u-down-right\",\n title: \"Arrow U Down Right\",\n src: \"https://api.iconify.design/mdi/arrow-u-down-right.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-u-left-top\",\n title: \"Arrow U Left Top\",\n src: \"https://api.iconify.design/mdi/arrow-u-left-top.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-u-right-top\",\n title: \"Arrow U Right Top\",\n src: \"https://api.iconify.design/mdi/arrow-u-right-top.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-u-up-left\",\n title: \"Arrow U Up Left\",\n src: \"https://api.iconify.design/mdi/arrow-u-up-left.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_arrow-u-up-right\",\n title: \"Arrow U Up Right\",\n src: \"https://api.iconify.design/mdi/arrow-u-up-right.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_chevron-up\",\n title: \"Chevron Up\",\n src: \"https://api.iconify.design/mdi/chevron-up.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_chevron-down\",\n title: \"Chevron Down\",\n src: \"https://api.iconify.design/mdi/chevron-down.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_chevron-left\",\n title: \"Chevron Left\",\n src: \"https://api.iconify.design/mdi/chevron-left.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_chevron-right\",\n title: \"Chevron Right\",\n src: \"https://api.iconify.design/mdi/chevron-right.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_chevron-double-up\",\n title: \"Chevron Double Up\",\n src: \"https://api.iconify.design/mdi/chevron-double-up.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_chevron-double-down\",\n title: \"Chevron Double Down\",\n src: \"https://api.iconify.design/mdi/chevron-double-down.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_chevron-double-left\",\n title: \"Chevron Double Left\",\n src: \"https://api.iconify.design/mdi/chevron-double-left.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_chevron-double-right\",\n title: \"Chevron Double Right\",\n src: \"https://api.iconify.design/mdi/chevron-double-right.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_menu-up\",\n title: \"Menu Up\",\n src: \"https://api.iconify.design/mdi/menu-up.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_menu-down\",\n title: \"Menu Down\",\n src: \"https://api.iconify.design/mdi/menu-down.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_menu-left\",\n title: \"Menu Left\",\n src: \"https://api.iconify.design/mdi/menu-left.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_menu-right\",\n title: \"Menu Right\",\n src: \"https://api.iconify.design/mdi/menu-right.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_triangle\",\n title: \"Triangle\",\n src: \"https://api.iconify.design/mdi/triangle.svg?color=%236366f1\",\n category: \"arrow\",\n },\n {\n id: \"mdi_triangle-outline\",\n title: \"Triangle Outline\",\n src: \"https://api.iconify.design/mdi/triangle-outline.svg?color=%236366f1\",\n category: \"arrow\",\n },\n ],\n },\n {\n category: \"document\",\n title: \"Documents / Files\",\n entries: [\n {\n id: \"mdi_file\",\n title: \"File\",\n src: \"https://api.iconify.design/mdi/file.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-outline\",\n title: \"File Outline\",\n src: \"https://api.iconify.design/mdi/file-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-multiple\",\n title: \"File Multiple\",\n src: \"https://api.iconify.design/mdi/file-multiple.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-multiple-outline\",\n title: \"File Multiple Outline\",\n src: \"https://api.iconify.design/mdi/file-multiple-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-document\",\n title: \"File Document\",\n src: \"https://api.iconify.design/mdi/file-document.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-document-outline\",\n title: \"File Document Outline\",\n src: \"https://api.iconify.design/mdi/file-document-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-document-edit\",\n title: \"File Document Edit\",\n src: \"https://api.iconify.design/mdi/file-document-edit.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-image\",\n title: \"File Image\",\n src: \"https://api.iconify.design/mdi/file-image.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-image-outline\",\n title: \"File Image Outline\",\n src: \"https://api.iconify.design/mdi/file-image-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-video\",\n title: \"File Video\",\n src: \"https://api.iconify.design/mdi/file-video.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-video-outline\",\n title: \"File Video Outline\",\n src: \"https://api.iconify.design/mdi/file-video-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-music\",\n title: \"File Music\",\n src: \"https://api.iconify.design/mdi/file-music.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-music-outline\",\n title: \"File Music Outline\",\n src: \"https://api.iconify.design/mdi/file-music-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-pdf-box\",\n title: \"File Pdf Box\",\n src: \"https://api.iconify.design/mdi/file-pdf-box.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-word\",\n title: \"File Word\",\n src: \"https://api.iconify.design/mdi/file-word.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-excel\",\n title: \"File Excel\",\n src: \"https://api.iconify.design/mdi/file-excel.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-powerpoint\",\n title: \"File Powerpoint\",\n src: \"https://api.iconify.design/mdi/file-powerpoint.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-cog\",\n title: \"File Cog\",\n src: \"https://api.iconify.design/mdi/file-cog.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-cog-outline\",\n title: \"File Cog Outline\",\n src: \"https://api.iconify.design/mdi/file-cog-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-key\",\n title: \"File Key\",\n src: \"https://api.iconify.design/mdi/file-key.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-key-outline\",\n title: \"File Key Outline\",\n src: \"https://api.iconify.design/mdi/file-key-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-lock\",\n title: \"File Lock\",\n src: \"https://api.iconify.design/mdi/file-lock.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-lock-outline\",\n title: \"File Lock Outline\",\n src: \"https://api.iconify.design/mdi/file-lock-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-search\",\n title: \"File Search\",\n src: \"https://api.iconify.design/mdi/file-search.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-search-outline\",\n title: \"File Search Outline\",\n src: \"https://api.iconify.design/mdi/file-search-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-plus\",\n title: \"File Plus\",\n src: \"https://api.iconify.design/mdi/file-plus.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-plus-outline\",\n title: \"File Plus Outline\",\n src: \"https://api.iconify.design/mdi/file-plus-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-remove\",\n title: \"File Remove\",\n src: \"https://api.iconify.design/mdi/file-remove.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-remove-outline\",\n title: \"File Remove Outline\",\n src: \"https://api.iconify.design/mdi/file-remove-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-edit\",\n title: \"File Edit\",\n src: \"https://api.iconify.design/mdi/file-edit.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-edit-outline\",\n title: \"File Edit Outline\",\n src: \"https://api.iconify.design/mdi/file-edit-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-eye\",\n title: \"File Eye\",\n src: \"https://api.iconify.design/mdi/file-eye.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-eye-outline\",\n title: \"File Eye Outline\",\n src: \"https://api.iconify.design/mdi/file-eye-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-export\",\n title: \"File Export\",\n src: \"https://api.iconify.design/mdi/file-export.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-export-outline\",\n title: \"File Export Outline\",\n src: \"https://api.iconify.design/mdi/file-export-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-import\",\n title: \"File Import\",\n src: \"https://api.iconify.design/mdi/file-import.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-import-outline\",\n title: \"File Import Outline\",\n src: \"https://api.iconify.design/mdi/file-import-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-send\",\n title: \"File Send\",\n src: \"https://api.iconify.design/mdi/file-send.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-send-outline\",\n title: \"File Send Outline\",\n src: \"https://api.iconify.design/mdi/file-send-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-sync\",\n title: \"File Sync\",\n src: \"https://api.iconify.design/mdi/file-sync.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-sync-outline\",\n title: \"File Sync Outline\",\n src: \"https://api.iconify.design/mdi/file-sync-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-tree\",\n title: \"File Tree\",\n src: \"https://api.iconify.design/mdi/file-tree.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_file-tree-outline\",\n title: \"File Tree Outline\",\n src: \"https://api.iconify.design/mdi/file-tree-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder\",\n title: \"Folder\",\n src: \"https://api.iconify.design/mdi/folder.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-outline\",\n title: \"Folder Outline\",\n src: \"https://api.iconify.design/mdi/folder-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-open\",\n title: \"Folder Open\",\n src: \"https://api.iconify.design/mdi/folder-open.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-open-outline\",\n title: \"Folder Open Outline\",\n src: \"https://api.iconify.design/mdi/folder-open-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-multiple\",\n title: \"Folder Multiple\",\n src: \"https://api.iconify.design/mdi/folder-multiple.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-multiple-outline\",\n title: \"Folder Multiple Outline\",\n src: \"https://api.iconify.design/mdi/folder-multiple-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-plus\",\n title: \"Folder Plus\",\n src: \"https://api.iconify.design/mdi/folder-plus.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-plus-outline\",\n title: \"Folder Plus Outline\",\n src: \"https://api.iconify.design/mdi/folder-plus-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-remove\",\n title: \"Folder Remove\",\n src: \"https://api.iconify.design/mdi/folder-remove.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-remove-outline\",\n title: \"Folder Remove Outline\",\n src: \"https://api.iconify.design/mdi/folder-remove-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-cog\",\n title: \"Folder Cog\",\n src: \"https://api.iconify.design/mdi/folder-cog.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-key\",\n title: \"Folder Key\",\n src: \"https://api.iconify.design/mdi/folder-key.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-lock\",\n title: \"Folder Lock\",\n src: \"https://api.iconify.design/mdi/folder-lock.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-search\",\n title: \"Folder Search\",\n src: \"https://api.iconify.design/mdi/folder-search.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-network\",\n title: \"Folder Network\",\n src: \"https://api.iconify.design/mdi/folder-network.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-upload\",\n title: \"Folder Upload\",\n src: \"https://api.iconify.design/mdi/folder-upload.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-download\",\n title: \"Folder Download\",\n src: \"https://api.iconify.design/mdi/folder-download.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-edit\",\n title: \"Folder Edit\",\n src: \"https://api.iconify.design/mdi/folder-edit.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-zip\",\n title: \"Folder Zip\",\n src: \"https://api.iconify.design/mdi/folder-zip.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_folder-zip-outline\",\n title: \"Folder Zip Outline\",\n src: \"https://api.iconify.design/mdi/folder-zip-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_archive\",\n title: \"Archive\",\n src: \"https://api.iconify.design/mdi/archive.svg?color=%236366f1\",\n category: \"document\",\n },\n {\n id: \"mdi_archive-outline\",\n title: \"Archive Outline\",\n src: \"https://api.iconify.design/mdi/archive-outline.svg?color=%236366f1\",\n category: \"document\",\n },\n ],\n },\n {\n category: \"device\",\n title: \"Devices / Hardware\",\n entries: [\n {\n id: \"mdi_laptop\",\n title: \"Laptop\",\n src: \"https://api.iconify.design/mdi/laptop.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_desktop-classic\",\n title: \"Desktop Classic\",\n src: \"https://api.iconify.design/mdi/desktop-classic.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_monitor\",\n title: \"Monitor\",\n src: \"https://api.iconify.design/mdi/monitor.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_monitor-multiple\",\n title: \"Monitor Multiple\",\n src: \"https://api.iconify.design/mdi/monitor-multiple.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_monitor-dashboard\",\n title: \"Monitor Dashboard\",\n src: \"https://api.iconify.design/mdi/monitor-dashboard.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_cellphone\",\n title: \"Cellphone\",\n src: \"https://api.iconify.design/mdi/cellphone.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_tablet\",\n title: \"Tablet\",\n src: \"https://api.iconify.design/mdi/tablet.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_watch\",\n title: \"Watch\",\n src: \"https://api.iconify.design/mdi/watch.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_watch-variant\",\n title: \"Watch Variant\",\n src: \"https://api.iconify.design/mdi/watch-variant.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_television\",\n title: \"Television\",\n src: \"https://api.iconify.design/mdi/television.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_television-classic\",\n title: \"Television Classic\",\n src: \"https://api.iconify.design/mdi/television-classic.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_cast\",\n title: \"Cast\",\n src: \"https://api.iconify.design/mdi/cast.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_printer\",\n title: \"Printer\",\n src: \"https://api.iconify.design/mdi/printer.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_scanner\",\n title: \"Scanner\",\n src: \"https://api.iconify.design/mdi/scanner.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_fax\",\n title: \"Fax\",\n src: \"https://api.iconify.design/mdi/fax.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_phone\",\n title: \"Phone\",\n src: \"https://api.iconify.design/mdi/phone.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_phone-classic\",\n title: \"Phone Classic\",\n src: \"https://api.iconify.design/mdi/phone-classic.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_phone-incoming\",\n title: \"Phone Incoming\",\n src: \"https://api.iconify.design/mdi/phone-incoming.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_phone-outgoing\",\n title: \"Phone Outgoing\",\n src: \"https://api.iconify.design/mdi/phone-outgoing.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_phone-missed\",\n title: \"Phone Missed\",\n src: \"https://api.iconify.design/mdi/phone-missed.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_phone-hangup\",\n title: \"Phone Hangup\",\n src: \"https://api.iconify.design/mdi/phone-hangup.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_phone-in-talk\",\n title: \"Phone In Talk\",\n src: \"https://api.iconify.design/mdi/phone-in-talk.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_phone-paused\",\n title: \"Phone Paused\",\n src: \"https://api.iconify.design/mdi/phone-paused.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_phone-forward\",\n title: \"Phone Forward\",\n src: \"https://api.iconify.design/mdi/phone-forward.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_phone-log\",\n title: \"Phone Log\",\n src: \"https://api.iconify.design/mdi/phone-log.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_voicemail\",\n title: \"Voicemail\",\n src: \"https://api.iconify.design/mdi/voicemail.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_headphones\",\n title: \"Headphones\",\n src: \"https://api.iconify.design/mdi/headphones.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_headset\",\n title: \"Headset\",\n src: \"https://api.iconify.design/mdi/headset.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_microphone\",\n title: \"Microphone\",\n src: \"https://api.iconify.design/mdi/microphone.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_microphone-off\",\n title: \"Microphone Off\",\n src: \"https://api.iconify.design/mdi/microphone-off.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_speaker\",\n title: \"Speaker\",\n src: \"https://api.iconify.design/mdi/speaker.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_speaker-bluetooth\",\n title: \"Speaker Bluetooth\",\n src: \"https://api.iconify.design/mdi/speaker-bluetooth.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_speaker-wireless\",\n title: \"Speaker Wireless\",\n src: \"https://api.iconify.design/mdi/speaker-wireless.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_bluetooth\",\n title: \"Bluetooth\",\n src: \"https://api.iconify.design/mdi/bluetooth.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_bluetooth-connect\",\n title: \"Bluetooth Connect\",\n src: \"https://api.iconify.design/mdi/bluetooth-connect.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_usb\",\n title: \"Usb\",\n src: \"https://api.iconify.design/mdi/usb.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_usb-flash-drive\",\n title: \"Usb Flash Drive\",\n src: \"https://api.iconify.design/mdi/usb-flash-drive.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_sd\",\n title: \"Sd\",\n src: \"https://api.iconify.design/mdi/sd.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_memory\",\n title: \"Memory\",\n src: \"https://api.iconify.design/mdi/memory.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_cpu-64-bit\",\n title: \"Cpu 64 Bit\",\n src: \"https://api.iconify.design/mdi/cpu-64-bit.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_cpu-32-bit\",\n title: \"Cpu 32 Bit\",\n src: \"https://api.iconify.design/mdi/cpu-32-bit.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_harddisk\",\n title: \"Harddisk\",\n src: \"https://api.iconify.design/mdi/harddisk.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_database\",\n title: \"Database\",\n src: \"https://api.iconify.design/mdi/database.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_server\",\n title: \"Server\",\n src: \"https://api.iconify.design/mdi/server.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_wifi\",\n title: \"Wifi\",\n src: \"https://api.iconify.design/mdi/wifi.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_router\",\n title: \"Router\",\n src: \"https://api.iconify.design/mdi/router.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_access-point\",\n title: \"Access Point\",\n src: \"https://api.iconify.design/mdi/access-point.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_remote\",\n title: \"Remote\",\n src: \"https://api.iconify.design/mdi/remote.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_remote-tv\",\n title: \"Remote Tv\",\n src: \"https://api.iconify.design/mdi/remote-tv.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_keyboard\",\n title: \"Keyboard\",\n src: \"https://api.iconify.design/mdi/keyboard.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_mouse\",\n title: \"Mouse\",\n src: \"https://api.iconify.design/mdi/mouse.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_mouse-variant\",\n title: \"Mouse Variant\",\n src: \"https://api.iconify.design/mdi/mouse-variant.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_gamepad\",\n title: \"Gamepad\",\n src: \"https://api.iconify.design/mdi/gamepad.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_gamepad-variant\",\n title: \"Gamepad Variant\",\n src: \"https://api.iconify.design/mdi/gamepad-variant.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_controller-classic\",\n title: \"Controller Classic\",\n src: \"https://api.iconify.design/mdi/controller-classic.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_projector\",\n title: \"Projector\",\n src: \"https://api.iconify.design/mdi/projector.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_projector-screen\",\n title: \"Projector Screen\",\n src: \"https://api.iconify.design/mdi/projector-screen.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_camera\",\n title: \"Camera\",\n src: \"https://api.iconify.design/mdi/camera.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_camera-iris\",\n title: \"Camera Iris\",\n src: \"https://api.iconify.design/mdi/camera-iris.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_webcam\",\n title: \"Webcam\",\n src: \"https://api.iconify.design/mdi/webcam.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_gauge\",\n title: \"Gauge\",\n src: \"https://api.iconify.design/mdi/gauge.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_thermometer\",\n title: \"Thermometer\",\n src: \"https://api.iconify.design/mdi/thermometer.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_fingerprint\",\n title: \"Fingerprint\",\n src: \"https://api.iconify.design/mdi/fingerprint.svg?color=%236366f1\",\n category: \"device\",\n },\n {\n id: \"mdi_face-recognition\",\n title: \"Face Recognition\",\n src: \"https://api.iconify.design/mdi/face-recognition.svg?color=%236366f1\",\n category: \"device\",\n },\n ],\n },\n {\n category: \"communication\",\n title: \"Communication / Social\",\n entries: [\n {\n id: \"mdi_email\",\n title: \"Email\",\n src: \"https://api.iconify.design/mdi/email.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-outline\",\n title: \"Email Outline\",\n src: \"https://api.iconify.design/mdi/email-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-multiple\",\n title: \"Email Multiple\",\n src: \"https://api.iconify.design/mdi/email-multiple.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-multiple-outline\",\n title: \"Email Multiple Outline\",\n src: \"https://api.iconify.design/mdi/email-multiple-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-open\",\n title: \"Email Open\",\n src: \"https://api.iconify.design/mdi/email-open.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-open-outline\",\n title: \"Email Open Outline\",\n src: \"https://api.iconify.design/mdi/email-open-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-fast\",\n title: \"Email Fast\",\n src: \"https://api.iconify.design/mdi/email-fast.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-fast-outline\",\n title: \"Email Fast Outline\",\n src: \"https://api.iconify.design/mdi/email-fast-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-edit\",\n title: \"Email Edit\",\n src: \"https://api.iconify.design/mdi/email-edit.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-edit-outline\",\n title: \"Email Edit Outline\",\n src: \"https://api.iconify.design/mdi/email-edit-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-search\",\n title: \"Email Search\",\n src: \"https://api.iconify.design/mdi/email-search.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-search-outline\",\n title: \"Email Search Outline\",\n src: \"https://api.iconify.design/mdi/email-search-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_email-newsletter\",\n title: \"Email Newsletter\",\n src: \"https://api.iconify.design/mdi/email-newsletter.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message\",\n title: \"Message\",\n src: \"https://api.iconify.design/mdi/message.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-outline\",\n title: \"Message Outline\",\n src: \"https://api.iconify.design/mdi/message-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-text\",\n title: \"Message Text\",\n src: \"https://api.iconify.design/mdi/message-text.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-text-outline\",\n title: \"Message Text Outline\",\n src: \"https://api.iconify.design/mdi/message-text-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-bulleted\",\n title: \"Message Bulleted\",\n src: \"https://api.iconify.design/mdi/message-bulleted.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-bulleted-off\",\n title: \"Message Bulleted Off\",\n src: \"https://api.iconify.design/mdi/message-bulleted-off.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-reply\",\n title: \"Message Reply\",\n src: \"https://api.iconify.design/mdi/message-reply.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-reply-outline\",\n title: \"Message Reply Outline\",\n src: \"https://api.iconify.design/mdi/message-reply-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-reply-text\",\n title: \"Message Reply Text\",\n src: \"https://api.iconify.design/mdi/message-reply-text.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-reply-text-outline\",\n title: \"Message Reply Text Outline\",\n src: \"https://api.iconify.design/mdi/message-reply-text-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-arrow-left\",\n title: \"Message Arrow Left\",\n src: \"https://api.iconify.design/mdi/message-arrow-left.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_message-arrow-right\",\n title: \"Message Arrow Right\",\n src: \"https://api.iconify.design/mdi/message-arrow-right.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_forum\",\n title: \"Forum\",\n src: \"https://api.iconify.design/mdi/forum.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_forum-outline\",\n title: \"Forum Outline\",\n src: \"https://api.iconify.design/mdi/forum-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_chat\",\n title: \"Chat\",\n src: \"https://api.iconify.design/mdi/chat.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_chat-outline\",\n title: \"Chat Outline\",\n src: \"https://api.iconify.design/mdi/chat-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_chat-plus\",\n title: \"Chat Plus\",\n src: \"https://api.iconify.design/mdi/chat-plus.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_chat-plus-outline\",\n title: \"Chat Plus Outline\",\n src: \"https://api.iconify.design/mdi/chat-plus-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_chat-remove\",\n title: \"Chat Remove\",\n src: \"https://api.iconify.design/mdi/chat-remove.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_chat-remove-outline\",\n title: \"Chat Remove Outline\",\n src: \"https://api.iconify.design/mdi/chat-remove-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_chat-question\",\n title: \"Chat Question\",\n src: \"https://api.iconify.design/mdi/chat-question.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_chat-question-outline\",\n title: \"Chat Question Outline\",\n src: \"https://api.iconify.design/mdi/chat-question-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_chat-alert\",\n title: \"Chat Alert\",\n src: \"https://api.iconify.design/mdi/chat-alert.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_chat-alert-outline\",\n title: \"Chat Alert Outline\",\n src: \"https://api.iconify.design/mdi/chat-alert-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_comment\",\n title: \"Comment\",\n src: \"https://api.iconify.design/mdi/comment.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_comment-outline\",\n title: \"Comment Outline\",\n src: \"https://api.iconify.design/mdi/comment-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_comment-multiple\",\n title: \"Comment Multiple\",\n src: \"https://api.iconify.design/mdi/comment-multiple.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_comment-multiple-outline\",\n title: \"Comment Multiple Outline\",\n src: \"https://api.iconify.design/mdi/comment-multiple-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_comment-text\",\n title: \"Comment Text\",\n src: \"https://api.iconify.design/mdi/comment-text.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_comment-text-outline\",\n title: \"Comment Text Outline\",\n src: \"https://api.iconify.design/mdi/comment-text-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_send\",\n title: \"Send\",\n src: \"https://api.iconify.design/mdi/send.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_send-outline\",\n title: \"Send Outline\",\n src: \"https://api.iconify.design/mdi/send-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_send-circle\",\n title: \"Send Circle\",\n src: \"https://api.iconify.design/mdi/send-circle.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_send-circle-outline\",\n title: \"Send Circle Outline\",\n src: \"https://api.iconify.design/mdi/send-circle-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_send-check\",\n title: \"Send Check\",\n src: \"https://api.iconify.design/mdi/send-check.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_send-check-outline\",\n title: \"Send Check Outline\",\n src: \"https://api.iconify.design/mdi/send-check-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_send-clock\",\n title: \"Send Clock\",\n src: \"https://api.iconify.design/mdi/send-clock.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_send-clock-outline\",\n title: \"Send Clock Outline\",\n src: \"https://api.iconify.design/mdi/send-clock-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_inbox\",\n title: \"Inbox\",\n src: \"https://api.iconify.design/mdi/inbox.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_inbox-outline\",\n title: \"Inbox Outline\",\n src: \"https://api.iconify.design/mdi/inbox-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_inbox-multiple\",\n title: \"Inbox Multiple\",\n src: \"https://api.iconify.design/mdi/inbox-multiple.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_inbox-multiple-outline\",\n title: \"Inbox Multiple Outline\",\n src: \"https://api.iconify.design/mdi/inbox-multiple-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_inbox-arrow-down\",\n title: \"Inbox Arrow Down\",\n src: \"https://api.iconify.design/mdi/inbox-arrow-down.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_inbox-arrow-down-outline\",\n title: \"Inbox Arrow Down Outline\",\n src: \"https://api.iconify.design/mdi/inbox-arrow-down-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_inbox-arrow-up\",\n title: \"Inbox Arrow Up\",\n src: \"https://api.iconify.design/mdi/inbox-arrow-up.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_inbox-arrow-up-outline\",\n title: \"Inbox Arrow Up Outline\",\n src: \"https://api.iconify.design/mdi/inbox-arrow-up-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_bell\",\n title: \"Bell\",\n src: \"https://api.iconify.design/mdi/bell.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_bell-outline\",\n title: \"Bell Outline\",\n src: \"https://api.iconify.design/mdi/bell-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_bell-off\",\n title: \"Bell Off\",\n src: \"https://api.iconify.design/mdi/bell-off.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_bell-off-outline\",\n title: \"Bell Off Outline\",\n src: \"https://api.iconify.design/mdi/bell-off-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_bell-plus\",\n title: \"Bell Plus\",\n src: \"https://api.iconify.design/mdi/bell-plus.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_bell-plus-outline\",\n title: \"Bell Plus Outline\",\n src: \"https://api.iconify.design/mdi/bell-plus-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_bell-ring\",\n title: \"Bell Ring\",\n src: \"https://api.iconify.design/mdi/bell-ring.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_bell-ring-outline\",\n title: \"Bell Ring Outline\",\n src: \"https://api.iconify.design/mdi/bell-ring-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_bell-badge\",\n title: \"Bell Badge\",\n src: \"https://api.iconify.design/mdi/bell-badge.svg?color=%236366f1\",\n category: \"communication\",\n },\n {\n id: \"mdi_bell-badge-outline\",\n title: \"Bell Badge Outline\",\n src: \"https://api.iconify.design/mdi/bell-badge-outline.svg?color=%236366f1\",\n category: \"communication\",\n },\n ],\n },\n {\n category: \"action\",\n title: \"Actions / UI\",\n entries: [\n {\n id: \"mdi_plus\",\n title: \"Plus\",\n src: \"https://api.iconify.design/mdi/plus.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_plus-box\",\n title: \"Plus Box\",\n src: \"https://api.iconify.design/mdi/plus-box.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_plus-box-outline\",\n title: \"Plus Box Outline\",\n src: \"https://api.iconify.design/mdi/plus-box-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_plus-circle\",\n title: \"Plus Circle\",\n src: \"https://api.iconify.design/mdi/plus-circle.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_plus-circle-outline\",\n title: \"Plus Circle Outline\",\n src: \"https://api.iconify.design/mdi/plus-circle-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_minus\",\n title: \"Minus\",\n src: \"https://api.iconify.design/mdi/minus.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_minus-box\",\n title: \"Minus Box\",\n src: \"https://api.iconify.design/mdi/minus-box.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_minus-box-outline\",\n title: \"Minus Box Outline\",\n src: \"https://api.iconify.design/mdi/minus-box-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_minus-circle\",\n title: \"Minus Circle\",\n src: \"https://api.iconify.design/mdi/minus-circle.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_minus-circle-outline\",\n title: \"Minus Circle Outline\",\n src: \"https://api.iconify.design/mdi/minus-circle-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_close\",\n title: \"Close\",\n src: \"https://api.iconify.design/mdi/close.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_close-box\",\n title: \"Close Box\",\n src: \"https://api.iconify.design/mdi/close-box.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_close-box-outline\",\n title: \"Close Box Outline\",\n src: \"https://api.iconify.design/mdi/close-box-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_close-circle\",\n title: \"Close Circle\",\n src: \"https://api.iconify.design/mdi/close-circle.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_close-circle-outline\",\n title: \"Close Circle Outline\",\n src: \"https://api.iconify.design/mdi/close-circle-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_close-thick\",\n title: \"Close Thick\",\n src: \"https://api.iconify.design/mdi/close-thick.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_check\",\n title: \"Check\",\n src: \"https://api.iconify.design/mdi/check.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_check-bold\",\n title: \"Check Bold\",\n src: \"https://api.iconify.design/mdi/check-bold.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_check-circle\",\n title: \"Check Circle\",\n src: \"https://api.iconify.design/mdi/check-circle.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_check-circle-outline\",\n title: \"Check Circle Outline\",\n src: \"https://api.iconify.design/mdi/check-circle-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_check-decagram\",\n title: \"Check Decagram\",\n src: \"https://api.iconify.design/mdi/check-decagram.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_check-network\",\n title: \"Check Network\",\n src: \"https://api.iconify.design/mdi/check-network.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_check-network-outline\",\n title: \"Check Network Outline\",\n src: \"https://api.iconify.design/mdi/check-network-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_check-underline\",\n title: \"Check Underline\",\n src: \"https://api.iconify.design/mdi/check-underline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_check-all\",\n title: \"Check All\",\n src: \"https://api.iconify.design/mdi/check-all.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_pencil\",\n title: \"Pencil\",\n src: \"https://api.iconify.design/mdi/pencil.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_pencil-outline\",\n title: \"Pencil Outline\",\n src: \"https://api.iconify.design/mdi/pencil-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_pencil-box\",\n title: \"Pencil Box\",\n src: \"https://api.iconify.design/mdi/pencil-box.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_pencil-box-outline\",\n title: \"Pencil Box Outline\",\n src: \"https://api.iconify.design/mdi/pencil-box-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_delete\",\n title: \"Delete\",\n src: \"https://api.iconify.design/mdi/delete.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_delete-outline\",\n title: \"Delete Outline\",\n src: \"https://api.iconify.design/mdi/delete-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_delete-empty\",\n title: \"Delete Empty\",\n src: \"https://api.iconify.design/mdi/delete-empty.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_delete-empty-outline\",\n title: \"Delete Empty Outline\",\n src: \"https://api.iconify.design/mdi/delete-empty-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_delete-forever\",\n title: \"Delete Forever\",\n src: \"https://api.iconify.design/mdi/delete-forever.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_delete-forever-outline\",\n title: \"Delete Forever Outline\",\n src: \"https://api.iconify.design/mdi/delete-forever-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_delete-sweep\",\n title: \"Delete Sweep\",\n src: \"https://api.iconify.design/mdi/delete-sweep.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_delete-sweep-outline\",\n title: \"Delete Sweep Outline\",\n src: \"https://api.iconify.design/mdi/delete-sweep-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_trash-can\",\n title: \"Trash Can\",\n src: \"https://api.iconify.design/mdi/trash-can.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_trash-can-outline\",\n title: \"Trash Can Outline\",\n src: \"https://api.iconify.design/mdi/trash-can-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_restore\",\n title: \"Restore\",\n src: \"https://api.iconify.design/mdi/restore.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_undo\",\n title: \"Undo\",\n src: \"https://api.iconify.design/mdi/undo.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_undo-variant\",\n title: \"Undo Variant\",\n src: \"https://api.iconify.design/mdi/undo-variant.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_redo\",\n title: \"Redo\",\n src: \"https://api.iconify.design/mdi/redo.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_redo-variant\",\n title: \"Redo Variant\",\n src: \"https://api.iconify.design/mdi/redo-variant.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_refresh\",\n title: \"Refresh\",\n src: \"https://api.iconify.design/mdi/refresh.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_reload\",\n title: \"Reload\",\n src: \"https://api.iconify.design/mdi/reload.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sync\",\n title: \"Sync\",\n src: \"https://api.iconify.design/mdi/sync.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sync-alert\",\n title: \"Sync Alert\",\n src: \"https://api.iconify.design/mdi/sync-alert.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sync-circle\",\n title: \"Sync Circle\",\n src: \"https://api.iconify.design/mdi/sync-circle.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sync-off\",\n title: \"Sync Off\",\n src: \"https://api.iconify.design/mdi/sync-off.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_autorenew\",\n title: \"Autorenew\",\n src: \"https://api.iconify.design/mdi/autorenew.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_cached\",\n title: \"Cached\",\n src: \"https://api.iconify.design/mdi/cached.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_history\",\n title: \"History\",\n src: \"https://api.iconify.design/mdi/history.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_clock\",\n title: \"Clock\",\n src: \"https://api.iconify.design/mdi/clock.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_clock-outline\",\n title: \"Clock Outline\",\n src: \"https://api.iconify.design/mdi/clock-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_clock-fast\",\n title: \"Clock Fast\",\n src: \"https://api.iconify.design/mdi/clock-fast.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_clock-time-four\",\n title: \"Clock Time Four\",\n src: \"https://api.iconify.design/mdi/clock-time-four.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_timer\",\n title: \"Timer\",\n src: \"https://api.iconify.design/mdi/timer.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_timer-outline\",\n title: \"Timer Outline\",\n src: \"https://api.iconify.design/mdi/timer-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_timer-sand\",\n title: \"Timer Sand\",\n src: \"https://api.iconify.design/mdi/timer-sand.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_timer-sand-complete\",\n title: \"Timer Sand Complete\",\n src: \"https://api.iconify.design/mdi/timer-sand-complete.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_timer-pause\",\n title: \"Timer Pause\",\n src: \"https://api.iconify.design/mdi/timer-pause.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_timer-pause-outline\",\n title: \"Timer Pause Outline\",\n src: \"https://api.iconify.design/mdi/timer-pause-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_timer-play\",\n title: \"Timer Play\",\n src: \"https://api.iconify.design/mdi/timer-play.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_timer-play-outline\",\n title: \"Timer Play Outline\",\n src: \"https://api.iconify.design/mdi/timer-play-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_timer-stop\",\n title: \"Timer Stop\",\n src: \"https://api.iconify.design/mdi/timer-stop.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_timer-stop-outline\",\n title: \"Timer Stop Outline\",\n src: \"https://api.iconify.design/mdi/timer-stop-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_magnify\",\n title: \"Magnify\",\n src: \"https://api.iconify.design/mdi/magnify.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_magnify-plus\",\n title: \"Magnify Plus\",\n src: \"https://api.iconify.design/mdi/magnify-plus.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_magnify-plus-outline\",\n title: \"Magnify Plus Outline\",\n src: \"https://api.iconify.design/mdi/magnify-plus-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_magnify-minus\",\n title: \"Magnify Minus\",\n src: \"https://api.iconify.design/mdi/magnify-minus.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_magnify-minus-outline\",\n title: \"Magnify Minus Outline\",\n src: \"https://api.iconify.design/mdi/magnify-minus-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_magnify-close\",\n title: \"Magnify Close\",\n src: \"https://api.iconify.design/mdi/magnify-close.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_filter\",\n title: \"Filter\",\n src: \"https://api.iconify.design/mdi/filter.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_filter-outline\",\n title: \"Filter Outline\",\n src: \"https://api.iconify.design/mdi/filter-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_filter-variant\",\n title: \"Filter Variant\",\n src: \"https://api.iconify.design/mdi/filter-variant.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_filter-variant-remove\",\n title: \"Filter Variant Remove\",\n src: \"https://api.iconify.design/mdi/filter-variant-remove.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sort\",\n title: \"Sort\",\n src: \"https://api.iconify.design/mdi/sort.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sort-ascending\",\n title: \"Sort Ascending\",\n src: \"https://api.iconify.design/mdi/sort-ascending.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sort-descending\",\n title: \"Sort Descending\",\n src: \"https://api.iconify.design/mdi/sort-descending.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sort-alphabetical-ascending\",\n title: \"Sort Alphabetical Ascending\",\n src: \"https://api.iconify.design/mdi/sort-alphabetical-ascending.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sort-alphabetical-descending\",\n title: \"Sort Alphabetical Descending\",\n src: \"https://api.iconify.design/mdi/sort-alphabetical-descending.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sort-numeric-ascending\",\n title: \"Sort Numeric Ascending\",\n src: \"https://api.iconify.design/mdi/sort-numeric-ascending.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_sort-numeric-descending\",\n title: \"Sort Numeric Descending\",\n src: \"https://api.iconify.design/mdi/sort-numeric-descending.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_eye\",\n title: \"Eye\",\n src: \"https://api.iconify.design/mdi/eye.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_eye-outline\",\n title: \"Eye Outline\",\n src: \"https://api.iconify.design/mdi/eye-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_eye-off\",\n title: \"Eye Off\",\n src: \"https://api.iconify.design/mdi/eye-off.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_eye-off-outline\",\n title: \"Eye Off Outline\",\n src: \"https://api.iconify.design/mdi/eye-off-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_lock\",\n title: \"Lock\",\n src: \"https://api.iconify.design/mdi/lock.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_lock-outline\",\n title: \"Lock Outline\",\n src: \"https://api.iconify.design/mdi/lock-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_lock-open\",\n title: \"Lock Open\",\n src: \"https://api.iconify.design/mdi/lock-open.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_lock-open-outline\",\n title: \"Lock Open Outline\",\n src: \"https://api.iconify.design/mdi/lock-open-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_shield\",\n title: \"Shield\",\n src: \"https://api.iconify.design/mdi/shield.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_shield-outline\",\n title: \"Shield Outline\",\n src: \"https://api.iconify.design/mdi/shield-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_shield-check\",\n title: \"Shield Check\",\n src: \"https://api.iconify.design/mdi/shield-check.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_shield-lock\",\n title: \"Shield Lock\",\n src: \"https://api.iconify.design/mdi/shield-lock.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_shield-key\",\n title: \"Shield Key\",\n src: \"https://api.iconify.design/mdi/shield-key.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_shield-account\",\n title: \"Shield Account\",\n src: \"https://api.iconify.design/mdi/shield-account.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_cog\",\n title: \"Cog\",\n src: \"https://api.iconify.design/mdi/cog.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_cog-outline\",\n title: \"Cog Outline\",\n src: \"https://api.iconify.design/mdi/cog-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_wrench\",\n title: \"Wrench\",\n src: \"https://api.iconify.design/mdi/wrench.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_wrench-outline\",\n title: \"Wrench Outline\",\n src: \"https://api.iconify.design/mdi/wrench-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_hammer\",\n title: \"Hammer\",\n src: \"https://api.iconify.design/mdi/hammer.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_palette\",\n title: \"Palette\",\n src: \"https://api.iconify.design/mdi/palette.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_palette-outline\",\n title: \"Palette Outline\",\n src: \"https://api.iconify.design/mdi/palette-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_palette-swatch\",\n title: \"Palette Swatch\",\n src: \"https://api.iconify.design/mdi/palette-swatch.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_palette-swatch-outline\",\n title: \"Palette Swatch Outline\",\n src: \"https://api.iconify.design/mdi/palette-swatch-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_brush\",\n title: \"Brush\",\n src: \"https://api.iconify.design/mdi/brush.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_brush-variant\",\n title: \"Brush Variant\",\n src: \"https://api.iconify.design/mdi/brush-variant.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_home\",\n title: \"Home\",\n src: \"https://api.iconify.design/mdi/home.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_home-outline\",\n title: \"Home Outline\",\n src: \"https://api.iconify.design/mdi/home-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_star\",\n title: \"Star\",\n src: \"https://api.iconify.design/mdi/star.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_star-outline\",\n title: \"Star Outline\",\n src: \"https://api.iconify.design/mdi/star-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_heart\",\n title: \"Heart\",\n src: \"https://api.iconify.design/mdi/heart.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_heart-outline\",\n title: \"Heart Outline\",\n src: \"https://api.iconify.design/mdi/heart-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_bookmark\",\n title: \"Bookmark\",\n src: \"https://api.iconify.design/mdi/bookmark.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_bookmark-outline\",\n title: \"Bookmark Outline\",\n src: \"https://api.iconify.design/mdi/bookmark-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_flag\",\n title: \"Flag\",\n src: \"https://api.iconify.design/mdi/flag.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_flag-outline\",\n title: \"Flag Outline\",\n src: \"https://api.iconify.design/mdi/flag-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_tag\",\n title: \"Tag\",\n src: \"https://api.iconify.design/mdi/tag.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_tag-outline\",\n title: \"Tag Outline\",\n src: \"https://api.iconify.design/mdi/tag-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_label\",\n title: \"Label\",\n src: \"https://api.iconify.design/mdi/label.svg?color=%236366f1\",\n category: \"action\",\n },\n {\n id: \"mdi_label-outline\",\n title: \"Label Outline\",\n src: \"https://api.iconify.design/mdi/label-outline.svg?color=%236366f1\",\n category: \"action\",\n },\n ],\n },\n {\n category: \"chart\",\n title: \"Charts / Data\",\n entries: [\n {\n id: \"mdi_chart-line\",\n title: \"Chart Line\",\n src: \"https://api.iconify.design/mdi/chart-line.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-line-variant\",\n title: \"Chart Line Variant\",\n src: \"https://api.iconify.design/mdi/chart-line-variant.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-line-stacked\",\n title: \"Chart Line Stacked\",\n src: \"https://api.iconify.design/mdi/chart-line-stacked.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-bar\",\n title: \"Chart Bar\",\n src: \"https://api.iconify.design/mdi/chart-bar.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-bar-stacked\",\n title: \"Chart Bar Stacked\",\n src: \"https://api.iconify.design/mdi/chart-bar-stacked.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-pie\",\n title: \"Chart Pie\",\n src: \"https://api.iconify.design/mdi/chart-pie.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-donut\",\n title: \"Chart Donut\",\n src: \"https://api.iconify.design/mdi/chart-donut.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-donut-variant\",\n title: \"Chart Donut Variant\",\n src: \"https://api.iconify.design/mdi/chart-donut-variant.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-arc\",\n title: \"Chart Arc\",\n src: \"https://api.iconify.design/mdi/chart-arc.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-bubble\",\n title: \"Chart Bubble\",\n src: \"https://api.iconify.design/mdi/chart-bubble.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-scatter-plot\",\n title: \"Chart Scatter Plot\",\n src: \"https://api.iconify.design/mdi/chart-scatter-plot.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-areaspline\",\n title: \"Chart Areaspline\",\n src: \"https://api.iconify.design/mdi/chart-areaspline.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-areaspline-variant\",\n title: \"Chart Areaspline Variant\",\n src: \"https://api.iconify.design/mdi/chart-areaspline-variant.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-multiline\",\n title: \"Chart Multiline\",\n src: \"https://api.iconify.design/mdi/chart-multiline.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-histogram\",\n title: \"Chart Histogram\",\n src: \"https://api.iconify.design/mdi/chart-histogram.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-gantt\",\n title: \"Chart Gantt\",\n src: \"https://api.iconify.design/mdi/chart-gantt.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-timeline\",\n title: \"Chart Timeline\",\n src: \"https://api.iconify.design/mdi/chart-timeline.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-timeline-variant\",\n title: \"Chart Timeline Variant\",\n src: \"https://api.iconify.design/mdi/chart-timeline-variant.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-bell-curve\",\n title: \"Chart Bell Curve\",\n src: \"https://api.iconify.design/mdi/chart-bell-curve.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-bell-curve-cumulative\",\n title: \"Chart Bell Curve Cumulative\",\n src: \"https://api.iconify.design/mdi/chart-bell-curve-cumulative.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-box\",\n title: \"Chart Box\",\n src: \"https://api.iconify.design/mdi/chart-box.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-box-outline\",\n title: \"Chart Box Outline\",\n src: \"https://api.iconify.design/mdi/chart-box-outline.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-box-plus-outline\",\n title: \"Chart Box Plus Outline\",\n src: \"https://api.iconify.design/mdi/chart-box-plus-outline.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_chart-tree\",\n title: \"Chart Tree\",\n src: \"https://api.iconify.design/mdi/chart-tree.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_finance\",\n title: \"Finance\",\n src: \"https://api.iconify.design/mdi/finance.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_trending-up\",\n title: \"Trending Up\",\n src: \"https://api.iconify.design/mdi/trending-up.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_trending-down\",\n title: \"Trending Down\",\n src: \"https://api.iconify.design/mdi/trending-down.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_trending-neutral\",\n title: \"Trending Neutral\",\n src: \"https://api.iconify.design/mdi/trending-neutral.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_gauge\",\n title: \"Gauge\",\n src: \"https://api.iconify.design/mdi/gauge.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_gauge-empty\",\n title: \"Gauge Empty\",\n src: \"https://api.iconify.design/mdi/gauge-empty.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_gauge-full\",\n title: \"Gauge Full\",\n src: \"https://api.iconify.design/mdi/gauge-full.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_gauge-low\",\n title: \"Gauge Low\",\n src: \"https://api.iconify.design/mdi/gauge-low.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_speedometer\",\n title: \"Speedometer\",\n src: \"https://api.iconify.design/mdi/speedometer.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_speedometer-medium\",\n title: \"Speedometer Medium\",\n src: \"https://api.iconify.design/mdi/speedometer-medium.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_speedometer-slow\",\n title: \"Speedometer Slow\",\n src: \"https://api.iconify.design/mdi/speedometer-slow.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_view-dashboard\",\n title: \"View Dashboard\",\n src: \"https://api.iconify.design/mdi/view-dashboard.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_view-dashboard-outline\",\n title: \"View Dashboard Outline\",\n src: \"https://api.iconify.design/mdi/view-dashboard-outline.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_view-dashboard-variant\",\n title: \"View Dashboard Variant\",\n src: \"https://api.iconify.design/mdi/view-dashboard-variant.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_view-dashboard-edit\",\n title: \"View Dashboard Edit\",\n src: \"https://api.iconify.design/mdi/view-dashboard-edit.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_monitor-dashboard\",\n title: \"Monitor Dashboard\",\n src: \"https://api.iconify.design/mdi/monitor-dashboard.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_poll\",\n title: \"Poll\",\n src: \"https://api.iconify.design/mdi/poll.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_tally-mark-1\",\n title: \"Tally Mark 1\",\n src: \"https://api.iconify.design/mdi/tally-mark-1.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_tally-mark-2\",\n title: \"Tally Mark 2\",\n src: \"https://api.iconify.design/mdi/tally-mark-2.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_tally-mark-3\",\n title: \"Tally Mark 3\",\n src: \"https://api.iconify.design/mdi/tally-mark-3.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_tally-mark-4\",\n title: \"Tally Mark 4\",\n src: \"https://api.iconify.design/mdi/tally-mark-4.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_tally-mark-5\",\n title: \"Tally Mark 5\",\n src: \"https://api.iconify.design/mdi/tally-mark-5.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_numeric\",\n title: \"Numeric\",\n src: \"https://api.iconify.design/mdi/numeric.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_numeric-0-box\",\n title: \"Numeric 0 Box\",\n src: \"https://api.iconify.design/mdi/numeric-0-box.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_numeric-1-box\",\n title: \"Numeric 1 Box\",\n src: \"https://api.iconify.design/mdi/numeric-1-box.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_numeric-2-box\",\n title: \"Numeric 2 Box\",\n src: \"https://api.iconify.design/mdi/numeric-2-box.svg?color=%236366f1\",\n category: \"chart\",\n },\n {\n id: \"mdi_numeric-3-box\",\n title: \"Numeric 3 Box\",\n src: \"https://api.iconify.design/mdi/numeric-3-box.svg?color=%236366f1\",\n category: \"chart\",\n },\n ],\n },\n {\n category: \"shape\",\n title: \"Shapes / Markers\",\n entries: [\n {\n id: \"mdi_circle\",\n title: \"Circle\",\n src: \"https://api.iconify.design/mdi/circle.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_circle-outline\",\n title: \"Circle Outline\",\n src: \"https://api.iconify.design/mdi/circle-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_circle-double\",\n title: \"Circle Double\",\n src: \"https://api.iconify.design/mdi/circle-double.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_circle-half\",\n title: \"Circle Half\",\n src: \"https://api.iconify.design/mdi/circle-half.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_circle-half-full\",\n title: \"Circle Half Full\",\n src: \"https://api.iconify.design/mdi/circle-half-full.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_circle-medium\",\n title: \"Circle Medium\",\n src: \"https://api.iconify.design/mdi/circle-medium.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_circle-small\",\n title: \"Circle Small\",\n src: \"https://api.iconify.design/mdi/circle-small.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_square\",\n title: \"Square\",\n src: \"https://api.iconify.design/mdi/square.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_square-outline\",\n title: \"Square Outline\",\n src: \"https://api.iconify.design/mdi/square-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_rhombus\",\n title: \"Rhombus\",\n src: \"https://api.iconify.design/mdi/rhombus.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_rhombus-outline\",\n title: \"Rhombus Outline\",\n src: \"https://api.iconify.design/mdi/rhombus-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_triangle\",\n title: \"Triangle\",\n src: \"https://api.iconify.design/mdi/triangle.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_triangle-outline\",\n title: \"Triangle Outline\",\n src: \"https://api.iconify.design/mdi/triangle-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_star\",\n title: \"Star\",\n src: \"https://api.iconify.design/mdi/star.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_star-outline\",\n title: \"Star Outline\",\n src: \"https://api.iconify.design/mdi/star-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_star-four-points\",\n title: \"Star Four Points\",\n src: \"https://api.iconify.design/mdi/star-four-points.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_star-four-points-outline\",\n title: \"Star Four Points Outline\",\n src: \"https://api.iconify.design/mdi/star-four-points-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_star-three-points\",\n title: \"Star Three Points\",\n src: \"https://api.iconify.design/mdi/star-three-points.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_star-three-points-outline\",\n title: \"Star Three Points Outline\",\n src: \"https://api.iconify.design/mdi/star-three-points-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_pentagon\",\n title: \"Pentagon\",\n src: \"https://api.iconify.design/mdi/pentagon.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_pentagon-outline\",\n title: \"Pentagon Outline\",\n src: \"https://api.iconify.design/mdi/pentagon-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_hexagon\",\n title: \"Hexagon\",\n src: \"https://api.iconify.design/mdi/hexagon.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_hexagon-outline\",\n title: \"Hexagon Outline\",\n src: \"https://api.iconify.design/mdi/hexagon-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_hexagon-multiple\",\n title: \"Hexagon Multiple\",\n src: \"https://api.iconify.design/mdi/hexagon-multiple.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_hexagon-multiple-outline\",\n title: \"Hexagon Multiple Outline\",\n src: \"https://api.iconify.design/mdi/hexagon-multiple-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_octagon\",\n title: \"Octagon\",\n src: \"https://api.iconify.design/mdi/octagon.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_octagon-outline\",\n title: \"Octagon Outline\",\n src: \"https://api.iconify.design/mdi/octagon-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_decagram\",\n title: \"Decagram\",\n src: \"https://api.iconify.design/mdi/decagram.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_decagram-outline\",\n title: \"Decagram Outline\",\n src: \"https://api.iconify.design/mdi/decagram-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_octagram\",\n title: \"Octagram\",\n src: \"https://api.iconify.design/mdi/octagram.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_octagram-outline\",\n title: \"Octagram Outline\",\n src: \"https://api.iconify.design/mdi/octagram-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_shape\",\n title: \"Shape\",\n src: \"https://api.iconify.design/mdi/shape.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_shape-outline\",\n title: \"Shape Outline\",\n src: \"https://api.iconify.design/mdi/shape-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_shape-square-plus\",\n title: \"Shape Square Plus\",\n src: \"https://api.iconify.design/mdi/shape-square-plus.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_shape-rectangle-plus\",\n title: \"Shape Rectangle Plus\",\n src: \"https://api.iconify.design/mdi/shape-rectangle-plus.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_shape-circle-plus\",\n title: \"Shape Circle Plus\",\n src: \"https://api.iconify.design/mdi/shape-circle-plus.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_shape-polygon-plus\",\n title: \"Shape Polygon Plus\",\n src: \"https://api.iconify.design/mdi/shape-polygon-plus.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_cards\",\n title: \"Cards\",\n src: \"https://api.iconify.design/mdi/cards.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_cards-outline\",\n title: \"Cards Outline\",\n src: \"https://api.iconify.design/mdi/cards-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_card\",\n title: \"Card\",\n src: \"https://api.iconify.design/mdi/card.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_card-outline\",\n title: \"Card Outline\",\n src: \"https://api.iconify.design/mdi/card-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_cube\",\n title: \"Cube\",\n src: \"https://api.iconify.design/mdi/cube.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_cube-outline\",\n title: \"Cube Outline\",\n src: \"https://api.iconify.design/mdi/cube-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_cube-send\",\n title: \"Cube Send\",\n src: \"https://api.iconify.design/mdi/cube-send.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_cube-scan\",\n title: \"Cube Scan\",\n src: \"https://api.iconify.design/mdi/cube-scan.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_tray\",\n title: \"Tray\",\n src: \"https://api.iconify.design/mdi/tray.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_tray-full\",\n title: \"Tray Full\",\n src: \"https://api.iconify.design/mdi/tray-full.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_tray-arrow-down\",\n title: \"Tray Arrow Down\",\n src: \"https://api.iconify.design/mdi/tray-arrow-down.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_tray-arrow-up\",\n title: \"Tray Arrow Up\",\n src: \"https://api.iconify.design/mdi/tray-arrow-up.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_inbox\",\n title: \"Inbox\",\n src: \"https://api.iconify.design/mdi/inbox.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_package\",\n title: \"Package\",\n src: \"https://api.iconify.design/mdi/package.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_package-variant\",\n title: \"Package Variant\",\n src: \"https://api.iconify.design/mdi/package-variant.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_gift\",\n title: \"Gift\",\n src: \"https://api.iconify.design/mdi/gift.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_puzzle\",\n title: \"Puzzle\",\n src: \"https://api.iconify.design/mdi/puzzle.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_puzzle-outline\",\n title: \"Puzzle Outline\",\n src: \"https://api.iconify.design/mdi/puzzle-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_lightbulb\",\n title: \"Lightbulb\",\n src: \"https://api.iconify.design/mdi/lightbulb.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_lightbulb-outline\",\n title: \"Lightbulb Outline\",\n src: \"https://api.iconify.design/mdi/lightbulb-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_lightbulb-on\",\n title: \"Lightbulb On\",\n src: \"https://api.iconify.design/mdi/lightbulb-on.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_lightbulb-on-outline\",\n title: \"Lightbulb On Outline\",\n src: \"https://api.iconify.design/mdi/lightbulb-on-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_flash\",\n title: \"Flash\",\n src: \"https://api.iconify.design/mdi/flash.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_flash-outline\",\n title: \"Flash Outline\",\n src: \"https://api.iconify.design/mdi/flash-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_fire\",\n title: \"Fire\",\n src: \"https://api.iconify.design/mdi/fire.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_fire-circle\",\n title: \"Fire Circle\",\n src: \"https://api.iconify.design/mdi/fire-circle.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_flower\",\n title: \"Flower\",\n src: \"https://api.iconify.design/mdi/flower.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_flower-outline\",\n title: \"Flower Outline\",\n src: \"https://api.iconify.design/mdi/flower-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_leaf\",\n title: \"Leaf\",\n src: \"https://api.iconify.design/mdi/leaf.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_tree\",\n title: \"Tree\",\n src: \"https://api.iconify.design/mdi/tree.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_cloud\",\n title: \"Cloud\",\n src: \"https://api.iconify.design/mdi/cloud.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_weather-cloudy\",\n title: \"Weather Cloudy\",\n src: \"https://api.iconify.design/mdi/weather-cloudy.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_weather-night\",\n title: \"Weather Night\",\n src: \"https://api.iconify.design/mdi/weather-night.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_weather-sunny\",\n title: \"Weather Sunny\",\n src: \"https://api.iconify.design/mdi/weather-sunny.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_compass\",\n title: \"Compass\",\n src: \"https://api.iconify.design/mdi/compass.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_compass-outline\",\n title: \"Compass Outline\",\n src: \"https://api.iconify.design/mdi/compass-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_map\",\n title: \"Map\",\n src: \"https://api.iconify.design/mdi/map.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_map-outline\",\n title: \"Map Outline\",\n src: \"https://api.iconify.design/mdi/map-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_map-marker\",\n title: \"Map Marker\",\n src: \"https://api.iconify.design/mdi/map-marker.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_map-marker-outline\",\n title: \"Map Marker Outline\",\n src: \"https://api.iconify.design/mdi/map-marker-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_pin\",\n title: \"Pin\",\n src: \"https://api.iconify.design/mdi/pin.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_pin-outline\",\n title: \"Pin Outline\",\n src: \"https://api.iconify.design/mdi/pin-outline.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_crosshairs\",\n title: \"Crosshairs\",\n src: \"https://api.iconify.design/mdi/crosshairs.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_crosshairs-gps\",\n title: \"Crosshairs Gps\",\n src: \"https://api.iconify.design/mdi/crosshairs-gps.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_target\",\n title: \"Target\",\n src: \"https://api.iconify.design/mdi/target.svg?color=%236366f1\",\n category: \"shape\",\n },\n {\n id: \"mdi_bullseye-arrow\",\n title: \"Bullseye Arrow\",\n src: \"https://api.iconify.design/mdi/bullseye-arrow.svg?color=%236366f1\",\n category: \"shape\",\n },\n ],\n },\n {\n category: \"user\",\n title: \"People / Avatars\",\n entries: [\n {\n id: \"mdi_account\",\n title: \"Account\",\n src: \"https://api.iconify.design/mdi/account.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-outline\",\n title: \"Account Outline\",\n src: \"https://api.iconify.design/mdi/account-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-circle\",\n title: \"Account Circle\",\n src: \"https://api.iconify.design/mdi/account-circle.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-circle-outline\",\n title: \"Account Circle Outline\",\n src: \"https://api.iconify.design/mdi/account-circle-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-box\",\n title: \"Account Box\",\n src: \"https://api.iconify.design/mdi/account-box.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-box-outline\",\n title: \"Account Box Outline\",\n src: \"https://api.iconify.design/mdi/account-box-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-multiple\",\n title: \"Account Multiple\",\n src: \"https://api.iconify.design/mdi/account-multiple.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-multiple-outline\",\n title: \"Account Multiple Outline\",\n src: \"https://api.iconify.design/mdi/account-multiple-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-group\",\n title: \"Account Group\",\n src: \"https://api.iconify.design/mdi/account-group.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-group-outline\",\n title: \"Account Group Outline\",\n src: \"https://api.iconify.design/mdi/account-group-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-plus\",\n title: \"Account Plus\",\n src: \"https://api.iconify.design/mdi/account-plus.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-plus-outline\",\n title: \"Account Plus Outline\",\n src: \"https://api.iconify.design/mdi/account-plus-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-minus\",\n title: \"Account Minus\",\n src: \"https://api.iconify.design/mdi/account-minus.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-minus-outline\",\n title: \"Account Minus Outline\",\n src: \"https://api.iconify.design/mdi/account-minus-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-remove\",\n title: \"Account Remove\",\n src: \"https://api.iconify.design/mdi/account-remove.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-remove-outline\",\n title: \"Account Remove Outline\",\n src: \"https://api.iconify.design/mdi/account-remove-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-edit\",\n title: \"Account Edit\",\n src: \"https://api.iconify.design/mdi/account-edit.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-edit-outline\",\n title: \"Account Edit Outline\",\n src: \"https://api.iconify.design/mdi/account-edit-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-check\",\n title: \"Account Check\",\n src: \"https://api.iconify.design/mdi/account-check.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-check-outline\",\n title: \"Account Check Outline\",\n src: \"https://api.iconify.design/mdi/account-check-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-cancel\",\n title: \"Account Cancel\",\n src: \"https://api.iconify.design/mdi/account-cancel.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-cancel-outline\",\n title: \"Account Cancel Outline\",\n src: \"https://api.iconify.design/mdi/account-cancel-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-key\",\n title: \"Account Key\",\n src: \"https://api.iconify.design/mdi/account-key.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-key-outline\",\n title: \"Account Key Outline\",\n src: \"https://api.iconify.design/mdi/account-key-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-lock\",\n title: \"Account Lock\",\n src: \"https://api.iconify.design/mdi/account-lock.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-lock-outline\",\n title: \"Account Lock Outline\",\n src: \"https://api.iconify.design/mdi/account-lock-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-cog\",\n title: \"Account Cog\",\n src: \"https://api.iconify.design/mdi/account-cog.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-cog-outline\",\n title: \"Account Cog Outline\",\n src: \"https://api.iconify.design/mdi/account-cog-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-search\",\n title: \"Account Search\",\n src: \"https://api.iconify.design/mdi/account-search.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-search-outline\",\n title: \"Account Search Outline\",\n src: \"https://api.iconify.design/mdi/account-search-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-star\",\n title: \"Account Star\",\n src: \"https://api.iconify.design/mdi/account-star.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-star-outline\",\n title: \"Account Star Outline\",\n src: \"https://api.iconify.design/mdi/account-star-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-heart\",\n title: \"Account Heart\",\n src: \"https://api.iconify.design/mdi/account-heart.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-heart-outline\",\n title: \"Account Heart Outline\",\n src: \"https://api.iconify.design/mdi/account-heart-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-tie\",\n title: \"Account Tie\",\n src: \"https://api.iconify.design/mdi/account-tie.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-tie-outline\",\n title: \"Account Tie Outline\",\n src: \"https://api.iconify.design/mdi/account-tie-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-tie-hat\",\n title: \"Account Tie Hat\",\n src: \"https://api.iconify.design/mdi/account-tie-hat.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_account-hard-hat\",\n title: \"Account Hard Hat\",\n src: \"https://api.iconify.design/mdi/account-hard-hat.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_face-man\",\n title: \"Face Man\",\n src: \"https://api.iconify.design/mdi/face-man.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_face-man-outline\",\n title: \"Face Man Outline\",\n src: \"https://api.iconify.design/mdi/face-man-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_face-woman\",\n title: \"Face Woman\",\n src: \"https://api.iconify.design/mdi/face-woman.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_face-woman-outline\",\n title: \"Face Woman Outline\",\n src: \"https://api.iconify.design/mdi/face-woman-outline.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_face-agent\",\n title: \"Face Agent\",\n src: \"https://api.iconify.design/mdi/face-agent.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_incognito\",\n title: \"Incognito\",\n src: \"https://api.iconify.design/mdi/incognito.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_human\",\n title: \"Human\",\n src: \"https://api.iconify.design/mdi/human.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_human-male\",\n title: \"Human Male\",\n src: \"https://api.iconify.design/mdi/human-male.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_human-female\",\n title: \"Human Female\",\n src: \"https://api.iconify.design/mdi/human-female.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_human-greeting\",\n title: \"Human Greeting\",\n src: \"https://api.iconify.design/mdi/human-greeting.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_human-male-female\",\n title: \"Human Male Female\",\n src: \"https://api.iconify.design/mdi/human-male-female.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_human-handsup\",\n title: \"Human Handsup\",\n src: \"https://api.iconify.design/mdi/human-handsup.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_human-male-board\",\n title: \"Human Male Board\",\n src: \"https://api.iconify.design/mdi/human-male-board.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_baby\",\n title: \"Baby\",\n src: \"https://api.iconify.design/mdi/baby.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_baby-face\",\n title: \"Baby Face\",\n src: \"https://api.iconify.design/mdi/baby-face.svg?color=%236366f1\",\n category: \"user\",\n },\n {\n id: \"mdi_wheelchair-accessibility\",\n title: \"Wheelchair Accessibility\",\n src: \"https://api.iconify.design/mdi/wheelchair-accessibility.svg?color=%236366f1\",\n category: \"user\",\n },\n ],\n },\n {\n category: \"media\",\n title: \"Media / Playback\",\n entries: [\n {\n id: \"mdi_play\",\n title: \"Play\",\n src: \"https://api.iconify.design/mdi/play.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_play-outline\",\n title: \"Play Outline\",\n src: \"https://api.iconify.design/mdi/play-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_play-circle\",\n title: \"Play Circle\",\n src: \"https://api.iconify.design/mdi/play-circle.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_play-circle-outline\",\n title: \"Play Circle Outline\",\n src: \"https://api.iconify.design/mdi/play-circle-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_play-box\",\n title: \"Play Box\",\n src: \"https://api.iconify.design/mdi/play-box.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_play-box-outline\",\n title: \"Play Box Outline\",\n src: \"https://api.iconify.design/mdi/play-box-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_play-network\",\n title: \"Play Network\",\n src: \"https://api.iconify.design/mdi/play-network.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_pause\",\n title: \"Pause\",\n src: \"https://api.iconify.design/mdi/pause.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_pause-circle\",\n title: \"Pause Circle\",\n src: \"https://api.iconify.design/mdi/pause-circle.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_pause-circle-outline\",\n title: \"Pause Circle Outline\",\n src: \"https://api.iconify.design/mdi/pause-circle-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_pause-octagon\",\n title: \"Pause Octagon\",\n src: \"https://api.iconify.design/mdi/pause-octagon.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_pause-octagon-outline\",\n title: \"Pause Octagon Outline\",\n src: \"https://api.iconify.design/mdi/pause-octagon-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_stop\",\n title: \"Stop\",\n src: \"https://api.iconify.design/mdi/stop.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_stop-circle\",\n title: \"Stop Circle\",\n src: \"https://api.iconify.design/mdi/stop-circle.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_stop-circle-outline\",\n title: \"Stop Circle Outline\",\n src: \"https://api.iconify.design/mdi/stop-circle-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_skip-previous\",\n title: \"Skip Previous\",\n src: \"https://api.iconify.design/mdi/skip-previous.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_skip-previous-outline\",\n title: \"Skip Previous Outline\",\n src: \"https://api.iconify.design/mdi/skip-previous-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_skip-next\",\n title: \"Skip Next\",\n src: \"https://api.iconify.design/mdi/skip-next.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_skip-next-outline\",\n title: \"Skip Next Outline\",\n src: \"https://api.iconify.design/mdi/skip-next-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_skip-backward\",\n title: \"Skip Backward\",\n src: \"https://api.iconify.design/mdi/skip-backward.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_skip-backward-outline\",\n title: \"Skip Backward Outline\",\n src: \"https://api.iconify.design/mdi/skip-backward-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_skip-forward\",\n title: \"Skip Forward\",\n src: \"https://api.iconify.design/mdi/skip-forward.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_skip-forward-outline\",\n title: \"Skip Forward Outline\",\n src: \"https://api.iconify.design/mdi/skip-forward-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_rewind\",\n title: \"Rewind\",\n src: \"https://api.iconify.design/mdi/rewind.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_rewind-outline\",\n title: \"Rewind Outline\",\n src: \"https://api.iconify.design/mdi/rewind-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_fast-forward\",\n title: \"Fast Forward\",\n src: \"https://api.iconify.design/mdi/fast-forward.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_fast-forward-outline\",\n title: \"Fast Forward Outline\",\n src: \"https://api.iconify.design/mdi/fast-forward-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_shuffle\",\n title: \"Shuffle\",\n src: \"https://api.iconify.design/mdi/shuffle.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_shuffle-variant\",\n title: \"Shuffle Variant\",\n src: \"https://api.iconify.design/mdi/shuffle-variant.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_shuffle-disabled\",\n title: \"Shuffle Disabled\",\n src: \"https://api.iconify.design/mdi/shuffle-disabled.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_repeat\",\n title: \"Repeat\",\n src: \"https://api.iconify.design/mdi/repeat.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_repeat-off\",\n title: \"Repeat Off\",\n src: \"https://api.iconify.design/mdi/repeat-off.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_repeat-once\",\n title: \"Repeat Once\",\n src: \"https://api.iconify.design/mdi/repeat-once.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_repeat-variant\",\n title: \"Repeat Variant\",\n src: \"https://api.iconify.design/mdi/repeat-variant.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_volume-high\",\n title: \"Volume High\",\n src: \"https://api.iconify.design/mdi/volume-high.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_volume-medium\",\n title: \"Volume Medium\",\n src: \"https://api.iconify.design/mdi/volume-medium.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_volume-low\",\n title: \"Volume Low\",\n src: \"https://api.iconify.design/mdi/volume-low.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_volume-off\",\n title: \"Volume Off\",\n src: \"https://api.iconify.design/mdi/volume-off.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_volume-mute\",\n title: \"Volume Mute\",\n src: \"https://api.iconify.design/mdi/volume-mute.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_volume-plus\",\n title: \"Volume Plus\",\n src: \"https://api.iconify.design/mdi/volume-plus.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_volume-minus\",\n title: \"Volume Minus\",\n src: \"https://api.iconify.design/mdi/volume-minus.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_music\",\n title: \"Music\",\n src: \"https://api.iconify.design/mdi/music.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_music-note\",\n title: \"Music Note\",\n src: \"https://api.iconify.design/mdi/music-note.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_music-note-eighth\",\n title: \"Music Note Eighth\",\n src: \"https://api.iconify.design/mdi/music-note-eighth.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_music-note-half\",\n title: \"Music Note Half\",\n src: \"https://api.iconify.design/mdi/music-note-half.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_music-note-quarter\",\n title: \"Music Note Quarter\",\n src: \"https://api.iconify.design/mdi/music-note-quarter.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_music-note-whole\",\n title: \"Music Note Whole\",\n src: \"https://api.iconify.design/mdi/music-note-whole.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_movie\",\n title: \"Movie\",\n src: \"https://api.iconify.design/mdi/movie.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_movie-outline\",\n title: \"Movie Outline\",\n src: \"https://api.iconify.design/mdi/movie-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_movie-open\",\n title: \"Movie Open\",\n src: \"https://api.iconify.design/mdi/movie-open.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_movie-open-outline\",\n title: \"Movie Open Outline\",\n src: \"https://api.iconify.design/mdi/movie-open-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_video\",\n title: \"Video\",\n src: \"https://api.iconify.design/mdi/video.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_video-outline\",\n title: \"Video Outline\",\n src: \"https://api.iconify.design/mdi/video-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_video-plus\",\n title: \"Video Plus\",\n src: \"https://api.iconify.design/mdi/video-plus.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_video-plus-outline\",\n title: \"Video Plus Outline\",\n src: \"https://api.iconify.design/mdi/video-plus-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_video-image\",\n title: \"Video Image\",\n src: \"https://api.iconify.design/mdi/video-image.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_video-input-component\",\n title: \"Video Input Component\",\n src: \"https://api.iconify.design/mdi/video-input-component.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_video-input-hdmi\",\n title: \"Video Input Hdmi\",\n src: \"https://api.iconify.design/mdi/video-input-hdmi.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_image\",\n title: \"Image\",\n src: \"https://api.iconify.design/mdi/image.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_image-outline\",\n title: \"Image Outline\",\n src: \"https://api.iconify.design/mdi/image-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_image-multiple\",\n title: \"Image Multiple\",\n src: \"https://api.iconify.design/mdi/image-multiple.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_image-multiple-outline\",\n title: \"Image Multiple Outline\",\n src: \"https://api.iconify.design/mdi/image-multiple-outline.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_image-album\",\n title: \"Image Album\",\n src: \"https://api.iconify.design/mdi/image-album.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_image-area\",\n title: \"Image Area\",\n src: \"https://api.iconify.design/mdi/image-area.svg?color=%236366f1\",\n category: \"media\",\n },\n {\n id: \"mdi_image-broken\",\n title: \"Image Broken\",\n src: \"https://api.iconify.design/mdi/image-broken.svg?color=%236366f1\",\n category: \"media\",\n },\n ],\n },\n {\n category: \"finance\",\n title: \"Finance / Commerce\",\n entries: [\n {\n id: \"mdi_currency-usd\",\n title: \"Currency Usd\",\n src: \"https://api.iconify.design/mdi/currency-usd.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_currency-eur\",\n title: \"Currency Eur\",\n src: \"https://api.iconify.design/mdi/currency-eur.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_currency-gbp\",\n title: \"Currency Gbp\",\n src: \"https://api.iconify.design/mdi/currency-gbp.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_currency-jpy\",\n title: \"Currency Jpy\",\n src: \"https://api.iconify.design/mdi/currency-jpy.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_currency-cny\",\n title: \"Currency Cny\",\n src: \"https://api.iconify.design/mdi/currency-cny.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_currency-krw\",\n title: \"Currency Krw\",\n src: \"https://api.iconify.design/mdi/currency-krw.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_currency-rub\",\n title: \"Currency Rub\",\n src: \"https://api.iconify.design/mdi/currency-rub.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_currency-inr\",\n title: \"Currency Inr\",\n src: \"https://api.iconify.design/mdi/currency-inr.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_currency-bdt\",\n title: \"Currency Bdt\",\n src: \"https://api.iconify.design/mdi/currency-bdt.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_currency-ngn\",\n title: \"Currency Ngn\",\n src: \"https://api.iconify.design/mdi/currency-ngn.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash\",\n title: \"Cash\",\n src: \"https://api.iconify.design/mdi/cash.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-multiple\",\n title: \"Cash Multiple\",\n src: \"https://api.iconify.design/mdi/cash-multiple.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-100\",\n title: \"Cash 100\",\n src: \"https://api.iconify.design/mdi/cash-100.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-check\",\n title: \"Cash Check\",\n src: \"https://api.iconify.design/mdi/cash-check.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-fast\",\n title: \"Cash Fast\",\n src: \"https://api.iconify.design/mdi/cash-fast.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-lock\",\n title: \"Cash Lock\",\n src: \"https://api.iconify.design/mdi/cash-lock.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-marker\",\n title: \"Cash Marker\",\n src: \"https://api.iconify.design/mdi/cash-marker.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-minus\",\n title: \"Cash Minus\",\n src: \"https://api.iconify.design/mdi/cash-minus.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-plus\",\n title: \"Cash Plus\",\n src: \"https://api.iconify.design/mdi/cash-plus.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-refund\",\n title: \"Cash Refund\",\n src: \"https://api.iconify.design/mdi/cash-refund.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-register\",\n title: \"Cash Register\",\n src: \"https://api.iconify.design/mdi/cash-register.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cash-remove\",\n title: \"Cash Remove\",\n src: \"https://api.iconify.design/mdi/cash-remove.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card\",\n title: \"Credit Card\",\n src: \"https://api.iconify.design/mdi/credit-card.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-outline\",\n title: \"Credit Card Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-multiple\",\n title: \"Credit Card Multiple\",\n src: \"https://api.iconify.design/mdi/credit-card-multiple.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-multiple-outline\",\n title: \"Credit Card Multiple Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-multiple-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-check\",\n title: \"Credit Card Check\",\n src: \"https://api.iconify.design/mdi/credit-card-check.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-check-outline\",\n title: \"Credit Card Check Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-check-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-edit\",\n title: \"Credit Card Edit\",\n src: \"https://api.iconify.design/mdi/credit-card-edit.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-edit-outline\",\n title: \"Credit Card Edit Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-edit-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-fast\",\n title: \"Credit Card Fast\",\n src: \"https://api.iconify.design/mdi/credit-card-fast.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-fast-outline\",\n title: \"Credit Card Fast Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-fast-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-lock\",\n title: \"Credit Card Lock\",\n src: \"https://api.iconify.design/mdi/credit-card-lock.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-lock-outline\",\n title: \"Credit Card Lock Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-lock-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-minus\",\n title: \"Credit Card Minus\",\n src: \"https://api.iconify.design/mdi/credit-card-minus.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-minus-outline\",\n title: \"Credit Card Minus Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-minus-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-plus\",\n title: \"Credit Card Plus\",\n src: \"https://api.iconify.design/mdi/credit-card-plus.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-plus-outline\",\n title: \"Credit Card Plus Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-plus-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-refresh\",\n title: \"Credit Card Refresh\",\n src: \"https://api.iconify.design/mdi/credit-card-refresh.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-refresh-outline\",\n title: \"Credit Card Refresh Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-refresh-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-refund\",\n title: \"Credit Card Refund\",\n src: \"https://api.iconify.design/mdi/credit-card-refund.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-refund-outline\",\n title: \"Credit Card Refund Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-refund-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-remove\",\n title: \"Credit Card Remove\",\n src: \"https://api.iconify.design/mdi/credit-card-remove.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-remove-outline\",\n title: \"Credit Card Remove Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-remove-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-scan\",\n title: \"Credit Card Scan\",\n src: \"https://api.iconify.design/mdi/credit-card-scan.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-scan-outline\",\n title: \"Credit Card Scan Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-scan-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-search\",\n title: \"Credit Card Search\",\n src: \"https://api.iconify.design/mdi/credit-card-search.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-search-outline\",\n title: \"Credit Card Search Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-search-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-settings\",\n title: \"Credit Card Settings\",\n src: \"https://api.iconify.design/mdi/credit-card-settings.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-settings-outline\",\n title: \"Credit Card Settings Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-settings-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-sync\",\n title: \"Credit Card Sync\",\n src: \"https://api.iconify.design/mdi/credit-card-sync.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-sync-outline\",\n title: \"Credit Card Sync Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-sync-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-wireless\",\n title: \"Credit Card Wireless\",\n src: \"https://api.iconify.design/mdi/credit-card-wireless.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_credit-card-wireless-outline\",\n title: \"Credit Card Wireless Outline\",\n src: \"https://api.iconify.design/mdi/credit-card-wireless-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_wallet\",\n title: \"Wallet\",\n src: \"https://api.iconify.design/mdi/wallet.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_wallet-outline\",\n title: \"Wallet Outline\",\n src: \"https://api.iconify.design/mdi/wallet-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_wallet-bifold\",\n title: \"Wallet Bifold\",\n src: \"https://api.iconify.design/mdi/wallet-bifold.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_wallet-bifold-outline\",\n title: \"Wallet Bifold Outline\",\n src: \"https://api.iconify.design/mdi/wallet-bifold-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_wallet-giftcard\",\n title: \"Wallet Giftcard\",\n src: \"https://api.iconify.design/mdi/wallet-giftcard.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_wallet-membership\",\n title: \"Wallet Membership\",\n src: \"https://api.iconify.design/mdi/wallet-membership.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_wallet-plus\",\n title: \"Wallet Plus\",\n src: \"https://api.iconify.design/mdi/wallet-plus.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_wallet-plus-outline\",\n title: \"Wallet Plus Outline\",\n src: \"https://api.iconify.design/mdi/wallet-plus-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_wallet-travel\",\n title: \"Wallet Travel\",\n src: \"https://api.iconify.design/mdi/wallet-travel.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_bank\",\n title: \"Bank\",\n src: \"https://api.iconify.design/mdi/bank.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_bank-outline\",\n title: \"Bank Outline\",\n src: \"https://api.iconify.design/mdi/bank-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_bank-circle\",\n title: \"Bank Circle\",\n src: \"https://api.iconify.design/mdi/bank-circle.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_bank-check\",\n title: \"Bank Check\",\n src: \"https://api.iconify.design/mdi/bank-check.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_bank-minus\",\n title: \"Bank Minus\",\n src: \"https://api.iconify.design/mdi/bank-minus.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_bank-plus\",\n title: \"Bank Plus\",\n src: \"https://api.iconify.design/mdi/bank-plus.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_bank-remove\",\n title: \"Bank Remove\",\n src: \"https://api.iconify.design/mdi/bank-remove.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_bank-transfer\",\n title: \"Bank Transfer\",\n src: \"https://api.iconify.design/mdi/bank-transfer.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_bank-transfer-in\",\n title: \"Bank Transfer In\",\n src: \"https://api.iconify.design/mdi/bank-transfer-in.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_bank-transfer-out\",\n title: \"Bank Transfer Out\",\n src: \"https://api.iconify.design/mdi/bank-transfer-out.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_shopping\",\n title: \"Shopping\",\n src: \"https://api.iconify.design/mdi/shopping.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_shopping-outline\",\n title: \"Shopping Outline\",\n src: \"https://api.iconify.design/mdi/shopping-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_shopping-music\",\n title: \"Shopping Music\",\n src: \"https://api.iconify.design/mdi/shopping-music.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_shopping-search\",\n title: \"Shopping Search\",\n src: \"https://api.iconify.design/mdi/shopping-search.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_shopping-search-outline\",\n title: \"Shopping Search Outline\",\n src: \"https://api.iconify.design/mdi/shopping-search-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cart\",\n title: \"Cart\",\n src: \"https://api.iconify.design/mdi/cart.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cart-outline\",\n title: \"Cart Outline\",\n src: \"https://api.iconify.design/mdi/cart-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cart-arrow-up\",\n title: \"Cart Arrow Up\",\n src: \"https://api.iconify.design/mdi/cart-arrow-up.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cart-arrow-down\",\n title: \"Cart Arrow Down\",\n src: \"https://api.iconify.design/mdi/cart-arrow-down.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cart-check\",\n title: \"Cart Check\",\n src: \"https://api.iconify.design/mdi/cart-check.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cart-heart\",\n title: \"Cart Heart\",\n src: \"https://api.iconify.design/mdi/cart-heart.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cart-minus\",\n title: \"Cart Minus\",\n src: \"https://api.iconify.design/mdi/cart-minus.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cart-off\",\n title: \"Cart Off\",\n src: \"https://api.iconify.design/mdi/cart-off.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cart-plus\",\n title: \"Cart Plus\",\n src: \"https://api.iconify.design/mdi/cart-plus.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_cart-remove\",\n title: \"Cart Remove\",\n src: \"https://api.iconify.design/mdi/cart-remove.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_gift\",\n title: \"Gift\",\n src: \"https://api.iconify.design/mdi/gift.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_gift-outline\",\n title: \"Gift Outline\",\n src: \"https://api.iconify.design/mdi/gift-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_gift-open\",\n title: \"Gift Open\",\n src: \"https://api.iconify.design/mdi/gift-open.svg?color=%236366f1\",\n category: \"finance\",\n },\n {\n id: \"mdi_gift-open-outline\",\n title: \"Gift Open Outline\",\n src: \"https://api.iconify.design/mdi/gift-open-outline.svg?color=%236366f1\",\n category: \"finance\",\n },\n ],\n },\n {\n category: \"crypto\",\n title: \"Cryptocurrency\",\n entries: [\n {\n id: \"crypto_0xbtc\",\n title: \"0xbtc\",\n src: \"https://api.iconify.design/cryptocurrency-color/0xbtc.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_1inch\",\n title: \"1inch\",\n src: \"https://api.iconify.design/cryptocurrency-color/1inch.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_2give\",\n title: \"2give\",\n src: \"https://api.iconify.design/cryptocurrency-color/2give.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_aave\",\n title: \"Aave\",\n src: \"https://api.iconify.design/cryptocurrency-color/aave.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_abt\",\n title: \"Abt\",\n src: \"https://api.iconify.design/cryptocurrency-color/abt.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_act\",\n title: \"Act\",\n src: \"https://api.iconify.design/cryptocurrency-color/act.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_actn\",\n title: \"Actn\",\n src: \"https://api.iconify.design/cryptocurrency-color/actn.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_ada\",\n title: \"Ada\",\n src: \"https://api.iconify.design/cryptocurrency-color/ada.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_add\",\n title: \"Add\",\n src: \"https://api.iconify.design/cryptocurrency-color/add.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_adx\",\n title: \"Adx\",\n src: \"https://api.iconify.design/cryptocurrency-color/adx.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_ae\",\n title: \"Ae\",\n src: \"https://api.iconify.design/cryptocurrency-color/ae.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_aeon\",\n title: \"Aeon\",\n src: \"https://api.iconify.design/cryptocurrency-color/aeon.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_aeur\",\n title: \"Aeur\",\n src: \"https://api.iconify.design/cryptocurrency-color/aeur.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_agi\",\n title: \"Agi\",\n src: \"https://api.iconify.design/cryptocurrency-color/agi.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_agrs\",\n title: \"Agrs\",\n src: \"https://api.iconify.design/cryptocurrency-color/agrs.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_aion\",\n title: \"Aion\",\n src: \"https://api.iconify.design/cryptocurrency-color/aion.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_algo\",\n title: \"Algo\",\n src: \"https://api.iconify.design/cryptocurrency-color/algo.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_amb\",\n title: \"Amb\",\n src: \"https://api.iconify.design/cryptocurrency-color/amb.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_amp\",\n title: \"Amp\",\n src: \"https://api.iconify.design/cryptocurrency-color/amp.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_ampl\",\n title: \"Ampl\",\n src: \"https://api.iconify.design/cryptocurrency-color/ampl.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_ankr\",\n title: \"Ankr\",\n src: \"https://api.iconify.design/cryptocurrency-color/ankr.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_ant\",\n title: \"Ant\",\n src: \"https://api.iconify.design/cryptocurrency-color/ant.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_ape\",\n title: \"Ape\",\n src: \"https://api.iconify.design/cryptocurrency-color/ape.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_apex\",\n title: \"Apex\",\n src: \"https://api.iconify.design/cryptocurrency-color/apex.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_appc\",\n title: \"Appc\",\n src: \"https://api.iconify.design/cryptocurrency-color/appc.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_ardr\",\n title: \"Ardr\",\n src: \"https://api.iconify.design/cryptocurrency-color/ardr.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_arg\",\n title: \"Arg\",\n src: \"https://api.iconify.design/cryptocurrency-color/arg.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_ark\",\n title: \"Ark\",\n src: \"https://api.iconify.design/cryptocurrency-color/ark.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_arn\",\n title: \"Arn\",\n src: \"https://api.iconify.design/cryptocurrency-color/arn.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_arnx\",\n title: \"Arnx\",\n src: \"https://api.iconify.design/cryptocurrency-color/arnx.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_ary\",\n title: \"Ary\",\n src: \"https://api.iconify.design/cryptocurrency-color/ary.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_ast\",\n title: \"Ast\",\n src: \"https://api.iconify.design/cryptocurrency-color/ast.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_atlas\",\n title: \"Atlas\",\n src: \"https://api.iconify.design/cryptocurrency-color/atlas.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_atm\",\n title: \"Atm\",\n src: \"https://api.iconify.design/cryptocurrency-color/atm.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_atom\",\n title: \"Atom\",\n src: \"https://api.iconify.design/cryptocurrency-color/atom.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_audr\",\n title: \"Audr\",\n src: \"https://api.iconify.design/cryptocurrency-color/audr.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_aury\",\n title: \"Aury\",\n src: \"https://api.iconify.design/cryptocurrency-color/aury.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_auto\",\n title: \"Auto\",\n src: \"https://api.iconify.design/cryptocurrency-color/auto.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_avax\",\n title: \"Avax\",\n src: \"https://api.iconify.design/cryptocurrency-color/avax.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_aywa\",\n title: \"Aywa\",\n src: \"https://api.iconify.design/cryptocurrency-color/aywa.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bab\",\n title: \"Bab\",\n src: \"https://api.iconify.design/cryptocurrency-color/bab.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bal\",\n title: \"Bal\",\n src: \"https://api.iconify.design/cryptocurrency-color/bal.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_band\",\n title: \"Band\",\n src: \"https://api.iconify.design/cryptocurrency-color/band.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bat\",\n title: \"Bat\",\n src: \"https://api.iconify.design/cryptocurrency-color/bat.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bay\",\n title: \"Bay\",\n src: \"https://api.iconify.design/cryptocurrency-color/bay.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bcbc\",\n title: \"Bcbc\",\n src: \"https://api.iconify.design/cryptocurrency-color/bcbc.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bcc\",\n title: \"Bcc\",\n src: \"https://api.iconify.design/cryptocurrency-color/bcc.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bcd\",\n title: \"Bcd\",\n src: \"https://api.iconify.design/cryptocurrency-color/bcd.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bch\",\n title: \"Bch\",\n src: \"https://api.iconify.design/cryptocurrency-color/bch.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bcio\",\n title: \"Bcio\",\n src: \"https://api.iconify.design/cryptocurrency-color/bcio.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bcn\",\n title: \"Bcn\",\n src: \"https://api.iconify.design/cryptocurrency-color/bcn.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bco\",\n title: \"Bco\",\n src: \"https://api.iconify.design/cryptocurrency-color/bco.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bcpt\",\n title: \"Bcpt\",\n src: \"https://api.iconify.design/cryptocurrency-color/bcpt.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bdl\",\n title: \"Bdl\",\n src: \"https://api.iconify.design/cryptocurrency-color/bdl.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_beam\",\n title: \"Beam\",\n src: \"https://api.iconify.design/cryptocurrency-color/beam.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bela\",\n title: \"Bela\",\n src: \"https://api.iconify.design/cryptocurrency-color/bela.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bix\",\n title: \"Bix\",\n src: \"https://api.iconify.design/cryptocurrency-color/bix.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_blcn\",\n title: \"Blcn\",\n src: \"https://api.iconify.design/cryptocurrency-color/blcn.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_blk\",\n title: \"Blk\",\n src: \"https://api.iconify.design/cryptocurrency-color/blk.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_block\",\n title: \"Block\",\n src: \"https://api.iconify.design/cryptocurrency-color/block.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_blz\",\n title: \"Blz\",\n src: \"https://api.iconify.design/cryptocurrency-color/blz.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bnb\",\n title: \"Bnb\",\n src: \"https://api.iconify.design/cryptocurrency-color/bnb.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bnt\",\n title: \"Bnt\",\n src: \"https://api.iconify.design/cryptocurrency-color/bnt.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bnty\",\n title: \"Bnty\",\n src: \"https://api.iconify.design/cryptocurrency-color/bnty.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_booty\",\n title: \"Booty\",\n src: \"https://api.iconify.design/cryptocurrency-color/booty.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bos\",\n title: \"Bos\",\n src: \"https://api.iconify.design/cryptocurrency-color/bos.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bpt\",\n title: \"Bpt\",\n src: \"https://api.iconify.design/cryptocurrency-color/bpt.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bq\",\n title: \"Bq\",\n src: \"https://api.iconify.design/cryptocurrency-color/bq.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_brd\",\n title: \"Brd\",\n src: \"https://api.iconify.design/cryptocurrency-color/brd.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bsd\",\n title: \"Bsd\",\n src: \"https://api.iconify.design/cryptocurrency-color/bsd.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bsv\",\n title: \"Bsv\",\n src: \"https://api.iconify.design/cryptocurrency-color/bsv.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_btc\",\n title: \"Btc\",\n src: \"https://api.iconify.design/cryptocurrency-color/btc.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_btcd\",\n title: \"Btcd\",\n src: \"https://api.iconify.design/cryptocurrency-color/btcd.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_btch\",\n title: \"Btch\",\n src: \"https://api.iconify.design/cryptocurrency-color/btch.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_btcp\",\n title: \"Btcp\",\n src: \"https://api.iconify.design/cryptocurrency-color/btcp.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_btcz\",\n title: \"Btcz\",\n src: \"https://api.iconify.design/cryptocurrency-color/btcz.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_btdx\",\n title: \"Btdx\",\n src: \"https://api.iconify.design/cryptocurrency-color/btdx.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_btg\",\n title: \"Btg\",\n src: \"https://api.iconify.design/cryptocurrency-color/btg.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_btm\",\n title: \"Btm\",\n src: \"https://api.iconify.design/cryptocurrency-color/btm.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bts\",\n title: \"Bts\",\n src: \"https://api.iconify.design/cryptocurrency-color/bts.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_btt\",\n title: \"Btt\",\n src: \"https://api.iconify.design/cryptocurrency-color/btt.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_btx\",\n title: \"Btx\",\n src: \"https://api.iconify.design/cryptocurrency-color/btx.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_burst\",\n title: \"Burst\",\n src: \"https://api.iconify.design/cryptocurrency-color/burst.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_bze\",\n title: \"Bze\",\n src: \"https://api.iconify.design/cryptocurrency-color/bze.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_call\",\n title: \"Call\",\n src: \"https://api.iconify.design/cryptocurrency-color/call.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_cc\",\n title: \"Cc\",\n src: \"https://api.iconify.design/cryptocurrency-color/cc.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_cdn\",\n title: \"Cdn\",\n src: \"https://api.iconify.design/cryptocurrency-color/cdn.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_cdt\",\n title: \"Cdt\",\n src: \"https://api.iconify.design/cryptocurrency-color/cdt.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_cenz\",\n title: \"Cenz\",\n src: \"https://api.iconify.design/cryptocurrency-color/cenz.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_chain\",\n title: \"Chain\",\n src: \"https://api.iconify.design/cryptocurrency-color/chain.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_chat\",\n title: \"Chat\",\n src: \"https://api.iconify.design/cryptocurrency-color/chat.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_chips\",\n title: \"Chips\",\n src: \"https://api.iconify.design/cryptocurrency-color/chips.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_chsb\",\n title: \"Chsb\",\n src: \"https://api.iconify.design/cryptocurrency-color/chsb.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_chz\",\n title: \"Chz\",\n src: \"https://api.iconify.design/cryptocurrency-color/chz.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_cix\",\n title: \"Cix\",\n src: \"https://api.iconify.design/cryptocurrency-color/cix.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_clam\",\n title: \"Clam\",\n src: \"https://api.iconify.design/cryptocurrency-color/clam.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_cloak\",\n title: \"Cloak\",\n src: \"https://api.iconify.design/cryptocurrency-color/cloak.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_cmm\",\n title: \"Cmm\",\n src: \"https://api.iconify.design/cryptocurrency-color/cmm.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_cmt\",\n title: \"Cmt\",\n src: \"https://api.iconify.design/cryptocurrency-color/cmt.svg\",\n category: \"crypto\",\n },\n {\n id: \"crypto_cnd\",\n title: \"Cnd\",\n src: \"https://api.iconify.design/cryptocurrency-color/cnd.svg\",\n category: \"crypto\",\n },\n ],\n },\n {\n category: \"symbol\",\n title: \"Material Symbols\",\n entries: [\n {\n id: \"sym_add\",\n title: \"Add\",\n src: \"https://api.iconify.design/material-symbols/add.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_remove\",\n title: \"Remove\",\n src: \"https://api.iconify.design/material-symbols/remove.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_check\",\n title: \"Check\",\n src: \"https://api.iconify.design/material-symbols/check.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_close\",\n title: \"Close\",\n src: \"https://api.iconify.design/material-symbols/close.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_star\",\n title: \"Star\",\n src: \"https://api.iconify.design/material-symbols/star.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_favorite\",\n title: \"Favorite\",\n src: \"https://api.iconify.design/material-symbols/favorite.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_search\",\n title: \"Search\",\n src: \"https://api.iconify.design/material-symbols/search.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_menu\",\n title: \"Menu\",\n src: \"https://api.iconify.design/material-symbols/menu.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_home\",\n title: \"Home\",\n src: \"https://api.iconify.design/material-symbols/home.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_settings\",\n title: \"Settings\",\n src: \"https://api.iconify.design/material-symbols/settings.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_logout\",\n title: \"Logout\",\n src: \"https://api.iconify.design/material-symbols/logout.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_login\",\n title: \"Login\",\n src: \"https://api.iconify.design/material-symbols/login.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_person\",\n title: \"Person\",\n src: \"https://api.iconify.design/material-symbols/person.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_group\",\n title: \"Group\",\n src: \"https://api.iconify.design/material-symbols/group.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_work\",\n title: \"Work\",\n src: \"https://api.iconify.design/material-symbols/work.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_school\",\n title: \"School\",\n src: \"https://api.iconify.design/material-symbols/school.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_science\",\n title: \"Science\",\n src: \"https://api.iconify.design/material-symbols/science.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_biotech\",\n title: \"Biotech\",\n src: \"https://api.iconify.design/material-symbols/biotech.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_engineering\",\n title: \"Engineering\",\n src: \"https://api.iconify.design/material-symbols/engineering.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_precision-manufacturing\",\n title: \"Precision Manufacturing\",\n src: \"https://api.iconify.design/material-symbols/precision-manufacturing.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_rocket-launch\",\n title: \"Rocket Launch\",\n src: \"https://api.iconify.design/material-symbols/rocket-launch.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_flight\",\n title: \"Flight\",\n src: \"https://api.iconify.design/material-symbols/flight.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_directions-car\",\n title: \"Directions Car\",\n src: \"https://api.iconify.design/material-symbols/directions-car.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_directions-bus\",\n title: \"Directions Bus\",\n src: \"https://api.iconify.design/material-symbols/directions-bus.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_directions-bike\",\n title: \"Directions Bike\",\n src: \"https://api.iconify.design/material-symbols/directions-bike.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_train\",\n title: \"Train\",\n src: \"https://api.iconify.design/material-symbols/train.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_subway\",\n title: \"Subway\",\n src: \"https://api.iconify.design/material-symbols/subway.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_two-wheeler\",\n title: \"Two Wheeler\",\n src: \"https://api.iconify.design/material-symbols/two-wheeler.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_pedal-bike\",\n title: \"Pedal Bike\",\n src: \"https://api.iconify.design/material-symbols/pedal-bike.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_directions-walk\",\n title: \"Directions Walk\",\n src: \"https://api.iconify.design/material-symbols/directions-walk.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_directions-run\",\n title: \"Directions Run\",\n src: \"https://api.iconify.design/material-symbols/directions-run.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_sports-soccer\",\n title: \"Sports Soccer\",\n src: \"https://api.iconify.design/material-symbols/sports-soccer.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_sports-basketball\",\n title: \"Sports Basketball\",\n src: \"https://api.iconify.design/material-symbols/sports-basketball.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_sports-baseball\",\n title: \"Sports Baseball\",\n src: \"https://api.iconify.design/material-symbols/sports-baseball.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_sports-tennis\",\n title: \"Sports Tennis\",\n src: \"https://api.iconify.design/material-symbols/sports-tennis.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_fitness-center\",\n title: \"Fitness Center\",\n src: \"https://api.iconify.design/material-symbols/fitness-center.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_restaurant\",\n title: \"Restaurant\",\n src: \"https://api.iconify.design/material-symbols/restaurant.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_local-cafe\",\n title: \"Local Cafe\",\n src: \"https://api.iconify.design/material-symbols/local-cafe.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_local-bar\",\n title: \"Local Bar\",\n src: \"https://api.iconify.design/material-symbols/local-bar.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_lunch-dining\",\n title: \"Lunch Dining\",\n src: \"https://api.iconify.design/material-symbols/lunch-dining.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_fastfood\",\n title: \"Fastfood\",\n src: \"https://api.iconify.design/material-symbols/fastfood.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_icecream\",\n title: \"Icecream\",\n src: \"https://api.iconify.design/material-symbols/icecream.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_cake\",\n title: \"Cake\",\n src: \"https://api.iconify.design/material-symbols/cake.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_cookie\",\n title: \"Cookie\",\n src: \"https://api.iconify.design/material-symbols/cookie.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_food-bank\",\n title: \"Food Bank\",\n src: \"https://api.iconify.design/material-symbols/food-bank.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_kitchen\",\n title: \"Kitchen\",\n src: \"https://api.iconify.design/material-symbols/kitchen.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_shopping-bag\",\n title: \"Shopping Bag\",\n src: \"https://api.iconify.design/material-symbols/shopping-bag.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_shopping-cart\",\n title: \"Shopping Cart\",\n src: \"https://api.iconify.design/material-symbols/shopping-cart.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_storefront\",\n title: \"Storefront\",\n src: \"https://api.iconify.design/material-symbols/storefront.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_store\",\n title: \"Store\",\n src: \"https://api.iconify.design/material-symbols/store.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_local-mall\",\n title: \"Local Mall\",\n src: \"https://api.iconify.design/material-symbols/local-mall.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_local-pharmacy\",\n title: \"Local Pharmacy\",\n src: \"https://api.iconify.design/material-symbols/local-pharmacy.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_medical-services\",\n title: \"Medical Services\",\n src: \"https://api.iconify.design/material-symbols/medical-services.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_local-hospital\",\n title: \"Local Hospital\",\n src: \"https://api.iconify.design/material-symbols/local-hospital.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_vaccines\",\n title: \"Vaccines\",\n src: \"https://api.iconify.design/material-symbols/vaccines.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_medication\",\n title: \"Medication\",\n src: \"https://api.iconify.design/material-symbols/medication.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_spa\",\n title: \"Spa\",\n src: \"https://api.iconify.design/material-symbols/spa.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_hotel\",\n title: \"Hotel\",\n src: \"https://api.iconify.design/material-symbols/hotel.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_apartment\",\n title: \"Apartment\",\n src: \"https://api.iconify.design/material-symbols/apartment.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_house\",\n title: \"House\",\n src: \"https://api.iconify.design/material-symbols/house.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_cottage\",\n title: \"Cottage\",\n src: \"https://api.iconify.design/material-symbols/cottage.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_cabin\",\n title: \"Cabin\",\n src: \"https://api.iconify.design/material-symbols/cabin.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_villa\",\n title: \"Villa\",\n src: \"https://api.iconify.design/material-symbols/villa.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_factory\",\n title: \"Factory\",\n src: \"https://api.iconify.design/material-symbols/factory.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_corporate-fare\",\n title: \"Corporate Fare\",\n src: \"https://api.iconify.design/material-symbols/corporate-fare.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_location-city\",\n title: \"Location City\",\n src: \"https://api.iconify.design/material-symbols/location-city.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_public\",\n title: \"Public\",\n src: \"https://api.iconify.design/material-symbols/public.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_pin-drop\",\n title: \"Pin Drop\",\n src: \"https://api.iconify.design/material-symbols/pin-drop.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_my-location\",\n title: \"My Location\",\n src: \"https://api.iconify.design/material-symbols/my-location.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_navigation\",\n title: \"Navigation\",\n src: \"https://api.iconify.design/material-symbols/navigation.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_directions\",\n title: \"Directions\",\n src: \"https://api.iconify.design/material-symbols/directions.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_route\",\n title: \"Route\",\n src: \"https://api.iconify.design/material-symbols/route.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_map\",\n title: \"Map\",\n src: \"https://api.iconify.design/material-symbols/map.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_satellite\",\n title: \"Satellite\",\n src: \"https://api.iconify.design/material-symbols/satellite.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_language\",\n title: \"Language\",\n src: \"https://api.iconify.design/material-symbols/language.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_translate\",\n title: \"Translate\",\n src: \"https://api.iconify.design/material-symbols/translate.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_g-translate\",\n title: \"G Translate\",\n src: \"https://api.iconify.design/material-symbols/g-translate.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_sign-language\",\n title: \"Sign Language\",\n src: \"https://api.iconify.design/material-symbols/sign-language.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_accessibility\",\n title: \"Accessibility\",\n src: \"https://api.iconify.design/material-symbols/accessibility.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_accessible\",\n title: \"Accessible\",\n src: \"https://api.iconify.design/material-symbols/accessible.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_hearing\",\n title: \"Hearing\",\n src: \"https://api.iconify.design/material-symbols/hearing.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_visibility\",\n title: \"Visibility\",\n src: \"https://api.iconify.design/material-symbols/visibility.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_visibility-off\",\n title: \"Visibility Off\",\n src: \"https://api.iconify.design/material-symbols/visibility-off.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_preview\",\n title: \"Preview\",\n src: \"https://api.iconify.design/material-symbols/preview.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_recommend\",\n title: \"Recommend\",\n src: \"https://api.iconify.design/material-symbols/recommend.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_thumb-up\",\n title: \"Thumb Up\",\n src: \"https://api.iconify.design/material-symbols/thumb-up.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_thumb-down\",\n title: \"Thumb Down\",\n src: \"https://api.iconify.design/material-symbols/thumb-down.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_forum\",\n title: \"Forum\",\n src: \"https://api.iconify.design/material-symbols/forum.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_chat\",\n title: \"Chat\",\n src: \"https://api.iconify.design/material-symbols/chat.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_sms\",\n title: \"Sms\",\n src: \"https://api.iconify.design/material-symbols/sms.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_mail\",\n title: \"Mail\",\n src: \"https://api.iconify.design/material-symbols/mail.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_mark-email-unread\",\n title: \"Mark Email Unread\",\n src: \"https://api.iconify.design/material-symbols/mark-email-unread.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_mark-email-read\",\n title: \"Mark Email Read\",\n src: \"https://api.iconify.design/material-symbols/mark-email-read.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_mark-as-unread\",\n title: \"Mark As Unread\",\n src: \"https://api.iconify.design/material-symbols/mark-as-unread.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_drafts\",\n title: \"Drafts\",\n src: \"https://api.iconify.design/material-symbols/drafts.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_inbox\",\n title: \"Inbox\",\n src: \"https://api.iconify.design/material-symbols/inbox.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_send\",\n title: \"Send\",\n src: \"https://api.iconify.design/material-symbols/send.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_reply\",\n title: \"Reply\",\n src: \"https://api.iconify.design/material-symbols/reply.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_reply-all\",\n title: \"Reply All\",\n src: \"https://api.iconify.design/material-symbols/reply-all.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_forward\",\n title: \"Forward\",\n src: \"https://api.iconify.design/material-symbols/forward.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_attach-file\",\n title: \"Attach File\",\n src: \"https://api.iconify.design/material-symbols/attach-file.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_attach-email\",\n title: \"Attach Email\",\n src: \"https://api.iconify.design/material-symbols/attach-email.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_attach-money\",\n title: \"Attach Money\",\n src: \"https://api.iconify.design/material-symbols/attach-money.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_attachment\",\n title: \"Attachment\",\n src: \"https://api.iconify.design/material-symbols/attachment.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_link\",\n title: \"Link\",\n src: \"https://api.iconify.design/material-symbols/link.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_link-off\",\n title: \"Link Off\",\n src: \"https://api.iconify.design/material-symbols/link-off.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_open-in-new\",\n title: \"Open In New\",\n src: \"https://api.iconify.design/material-symbols/open-in-new.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_open-in-browser\",\n title: \"Open In Browser\",\n src: \"https://api.iconify.design/material-symbols/open-in-browser.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_exit-to-app\",\n title: \"Exit To App\",\n src: \"https://api.iconify.design/material-symbols/exit-to-app.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_download\",\n title: \"Download\",\n src: \"https://api.iconify.design/material-symbols/download.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_download-for-offline\",\n title: \"Download For Offline\",\n src: \"https://api.iconify.design/material-symbols/download-for-offline.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_cloud-download\",\n title: \"Cloud Download\",\n src: \"https://api.iconify.design/material-symbols/cloud-download.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_upload\",\n title: \"Upload\",\n src: \"https://api.iconify.design/material-symbols/upload.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_backup\",\n title: \"Backup\",\n src: \"https://api.iconify.design/material-symbols/backup.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_sync\",\n title: \"Sync\",\n src: \"https://api.iconify.design/material-symbols/sync.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_sync-alt\",\n title: \"Sync Alt\",\n src: \"https://api.iconify.design/material-symbols/sync-alt.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_sync-disabled\",\n title: \"Sync Disabled\",\n src: \"https://api.iconify.design/material-symbols/sync-disabled.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_cached\",\n title: \"Cached\",\n src: \"https://api.iconify.design/material-symbols/cached.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_history\",\n title: \"History\",\n src: \"https://api.iconify.design/material-symbols/history.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_update\",\n title: \"Update\",\n src: \"https://api.iconify.design/material-symbols/update.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_schedule\",\n title: \"Schedule\",\n src: \"https://api.iconify.design/material-symbols/schedule.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_event\",\n title: \"Event\",\n src: \"https://api.iconify.design/material-symbols/event.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_event-available\",\n title: \"Event Available\",\n src: \"https://api.iconify.design/material-symbols/event-available.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_event-busy\",\n title: \"Event Busy\",\n src: \"https://api.iconify.design/material-symbols/event-busy.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_event-note\",\n title: \"Event Note\",\n src: \"https://api.iconify.design/material-symbols/event-note.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_today\",\n title: \"Today\",\n src: \"https://api.iconify.design/material-symbols/today.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_date-range\",\n title: \"Date Range\",\n src: \"https://api.iconify.design/material-symbols/date-range.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_calendar-month\",\n title: \"Calendar Month\",\n src: \"https://api.iconify.design/material-symbols/calendar-month.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_calendar-today\",\n title: \"Calendar Today\",\n src: \"https://api.iconify.design/material-symbols/calendar-today.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_calendar-view-day\",\n title: \"Calendar View Day\",\n src: \"https://api.iconify.design/material-symbols/calendar-view-day.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_calendar-view-week\",\n title: \"Calendar View Week\",\n src: \"https://api.iconify.design/material-symbols/calendar-view-week.svg?color=%236366f1\",\n category: \"symbol\",\n },\n {\n id: \"sym_calendar-view-month\",\n title: \"Calendar View Month\",\n src: \"https://api.iconify.design/material-symbols/calendar-view-month.svg?color=%236366f1\",\n category: \"symbol\",\n },\n ],\n },\n {\n category: \"tabler\",\n title: \"Tabler UI\",\n entries: [\n {\n id: \"tabler_adjustments\",\n title: \"Adjustments\",\n src: \"https://api.iconify.design/tabler/adjustments.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_air-conditioning\",\n title: \"Air Conditioning\",\n src: \"https://api.iconify.design/tabler/air-conditioning.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_alarm\",\n title: \"Alarm\",\n src: \"https://api.iconify.design/tabler/alarm.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_alert-circle\",\n title: \"Alert Circle\",\n src: \"https://api.iconify.design/tabler/alert-circle.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_alert-triangle\",\n title: \"Alert Triangle\",\n src: \"https://api.iconify.design/tabler/alert-triangle.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_align-center\",\n title: \"Align Center\",\n src: \"https://api.iconify.design/tabler/align-center.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_align-justified\",\n title: \"Align Justified\",\n src: \"https://api.iconify.design/tabler/align-justified.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_align-left\",\n title: \"Align Left\",\n src: \"https://api.iconify.design/tabler/align-left.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_align-right\",\n title: \"Align Right\",\n src: \"https://api.iconify.design/tabler/align-right.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_analyze\",\n title: \"Analyze\",\n src: \"https://api.iconify.design/tabler/analyze.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_anchor\",\n title: \"Anchor\",\n src: \"https://api.iconify.design/tabler/anchor.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_antenna-bars-5\",\n title: \"Antenna Bars 5\",\n src: \"https://api.iconify.design/tabler/antenna-bars-5.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_apps\",\n title: \"Apps\",\n src: \"https://api.iconify.design/tabler/apps.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_archive\",\n title: \"Archive\",\n src: \"https://api.iconify.design/tabler/archive.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_arrow-back-up\",\n title: \"Arrow Back Up\",\n src: \"https://api.iconify.design/tabler/arrow-back-up.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_arrow-forward-up\",\n title: \"Arrow Forward Up\",\n src: \"https://api.iconify.design/tabler/arrow-forward-up.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_arrow-narrow-down\",\n title: \"Arrow Narrow Down\",\n src: \"https://api.iconify.design/tabler/arrow-narrow-down.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_arrow-narrow-left\",\n title: \"Arrow Narrow Left\",\n src: \"https://api.iconify.design/tabler/arrow-narrow-left.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_arrow-narrow-right\",\n title: \"Arrow Narrow Right\",\n src: \"https://api.iconify.design/tabler/arrow-narrow-right.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_arrow-narrow-up\",\n title: \"Arrow Narrow Up\",\n src: \"https://api.iconify.design/tabler/arrow-narrow-up.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_at\",\n title: \"At\",\n src: \"https://api.iconify.design/tabler/at.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_atom\",\n title: \"Atom\",\n src: \"https://api.iconify.design/tabler/atom.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_award\",\n title: \"Award\",\n src: \"https://api.iconify.design/tabler/award.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_baby-carriage\",\n title: \"Baby Carriage\",\n src: \"https://api.iconify.design/tabler/baby-carriage.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_backhoe\",\n title: \"Backhoe\",\n src: \"https://api.iconify.design/tabler/backhoe.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_backpack\",\n title: \"Backpack\",\n src: \"https://api.iconify.design/tabler/backpack.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_badge\",\n title: \"Badge\",\n src: \"https://api.iconify.design/tabler/badge.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_baguette\",\n title: \"Baguette\",\n src: \"https://api.iconify.design/tabler/baguette.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_ball-baseball\",\n title: \"Ball Baseball\",\n src: \"https://api.iconify.design/tabler/ball-baseball.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_ball-basketball\",\n title: \"Ball Basketball\",\n src: \"https://api.iconify.design/tabler/ball-basketball.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_ball-football\",\n title: \"Ball Football\",\n src: \"https://api.iconify.design/tabler/ball-football.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_ball-tennis\",\n title: \"Ball Tennis\",\n src: \"https://api.iconify.design/tabler/ball-tennis.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_balloon\",\n title: \"Balloon\",\n src: \"https://api.iconify.design/tabler/balloon.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_ban\",\n title: \"Ban\",\n src: \"https://api.iconify.design/tabler/ban.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bandage\",\n title: \"Bandage\",\n src: \"https://api.iconify.design/tabler/bandage.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_barbell\",\n title: \"Barbell\",\n src: \"https://api.iconify.design/tabler/barbell.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_barcode\",\n title: \"Barcode\",\n src: \"https://api.iconify.design/tabler/barcode.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_barrier-block\",\n title: \"Barrier Block\",\n src: \"https://api.iconify.design/tabler/barrier-block.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_basket\",\n title: \"Basket\",\n src: \"https://api.iconify.design/tabler/basket.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bath\",\n title: \"Bath\",\n src: \"https://api.iconify.design/tabler/bath.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_battery-3\",\n title: \"Battery 3\",\n src: \"https://api.iconify.design/tabler/battery-3.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_beach\",\n title: \"Beach\",\n src: \"https://api.iconify.design/tabler/beach.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bed\",\n title: \"Bed\",\n src: \"https://api.iconify.design/tabler/bed.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_beer\",\n title: \"Beer\",\n src: \"https://api.iconify.design/tabler/beer.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bell\",\n title: \"Bell\",\n src: \"https://api.iconify.design/tabler/bell.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bike\",\n title: \"Bike\",\n src: \"https://api.iconify.design/tabler/bike.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_binary\",\n title: \"Binary\",\n src: \"https://api.iconify.design/tabler/binary.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_biohazard\",\n title: \"Biohazard\",\n src: \"https://api.iconify.design/tabler/biohazard.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bleach\",\n title: \"Bleach\",\n src: \"https://api.iconify.design/tabler/bleach.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_blender\",\n title: \"Blender\",\n src: \"https://api.iconify.design/tabler/blender.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_blockquote\",\n title: \"Blockquote\",\n src: \"https://api.iconify.design/tabler/blockquote.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bluetooth\",\n title: \"Bluetooth\",\n src: \"https://api.iconify.design/tabler/bluetooth.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bold\",\n title: \"Bold\",\n src: \"https://api.iconify.design/tabler/bold.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bone\",\n title: \"Bone\",\n src: \"https://api.iconify.design/tabler/bone.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_book\",\n title: \"Book\",\n src: \"https://api.iconify.design/tabler/book.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_book-2\",\n title: \"Book 2\",\n src: \"https://api.iconify.design/tabler/book-2.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bookmark\",\n title: \"Bookmark\",\n src: \"https://api.iconify.design/tabler/bookmark.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_border-all\",\n title: \"Border All\",\n src: \"https://api.iconify.design/tabler/border-all.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bottle\",\n title: \"Bottle\",\n src: \"https://api.iconify.design/tabler/bottle.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bow\",\n title: \"Bow\",\n src: \"https://api.iconify.design/tabler/bow.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bowl\",\n title: \"Bowl\",\n src: \"https://api.iconify.design/tabler/bowl.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_box\",\n title: \"Box\",\n src: \"https://api.iconify.design/tabler/box.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_box-multiple\",\n title: \"Box Multiple\",\n src: \"https://api.iconify.design/tabler/box-multiple.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brain\",\n title: \"Brain\",\n src: \"https://api.iconify.design/tabler/brain.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-twitter\",\n title: \"Twitter\",\n src: \"https://api.iconify.design/tabler/brand-twitter.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-facebook\",\n title: \"Facebook\",\n src: \"https://api.iconify.design/tabler/brand-facebook.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-instagram\",\n title: \"Instagram\",\n src: \"https://api.iconify.design/tabler/brand-instagram.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-linkedin\",\n title: \"Linkedin\",\n src: \"https://api.iconify.design/tabler/brand-linkedin.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-youtube\",\n title: \"Youtube\",\n src: \"https://api.iconify.design/tabler/brand-youtube.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-github\",\n title: \"Github\",\n src: \"https://api.iconify.design/tabler/brand-github.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-gitlab\",\n title: \"Gitlab\",\n src: \"https://api.iconify.design/tabler/brand-gitlab.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-google\",\n title: \"Google\",\n src: \"https://api.iconify.design/tabler/brand-google.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-google-drive\",\n title: \"Google Drive\",\n src: \"https://api.iconify.design/tabler/brand-google-drive.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-google-maps\",\n title: \"Google Maps\",\n src: \"https://api.iconify.design/tabler/brand-google-maps.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-google-play\",\n title: \"Google Play\",\n src: \"https://api.iconify.design/tabler/brand-google-play.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-apple\",\n title: \"Apple\",\n src: \"https://api.iconify.design/tabler/brand-apple.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-android\",\n title: \"Android\",\n src: \"https://api.iconify.design/tabler/brand-android.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-windows\",\n title: \"Windows\",\n src: \"https://api.iconify.design/tabler/brand-windows.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-chrome\",\n title: \"Chrome\",\n src: \"https://api.iconify.design/tabler/brand-chrome.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-firefox\",\n title: \"Firefox\",\n src: \"https://api.iconify.design/tabler/brand-firefox.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-safari\",\n title: \"Safari\",\n src: \"https://api.iconify.design/tabler/brand-safari.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-edge\",\n title: \"Edge\",\n src: \"https://api.iconify.design/tabler/brand-edge.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-opera\",\n title: \"Opera\",\n src: \"https://api.iconify.design/tabler/brand-opera.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-discord\",\n title: \"Discord\",\n src: \"https://api.iconify.design/tabler/brand-discord.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-slack\",\n title: \"Slack\",\n src: \"https://api.iconify.design/tabler/brand-slack.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-telegram\",\n title: \"Telegram\",\n src: \"https://api.iconify.design/tabler/brand-telegram.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-whatsapp\",\n title: \"Whatsapp\",\n src: \"https://api.iconify.design/tabler/brand-whatsapp.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-reddit\",\n title: \"Reddit\",\n src: \"https://api.iconify.design/tabler/brand-reddit.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-tiktok\",\n title: \"Tiktok\",\n src: \"https://api.iconify.design/tabler/brand-tiktok.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-snapchat\",\n title: \"Snapchat\",\n src: \"https://api.iconify.design/tabler/brand-snapchat.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-pinterest\",\n title: \"Pinterest\",\n src: \"https://api.iconify.design/tabler/brand-pinterest.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-spotify\",\n title: \"Spotify\",\n src: \"https://api.iconify.design/tabler/brand-spotify.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-twitch\",\n title: \"Twitch\",\n src: \"https://api.iconify.design/tabler/brand-twitch.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-vimeo\",\n title: \"Vimeo\",\n src: \"https://api.iconify.design/tabler/brand-vimeo.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-airbnb\",\n title: \"Airbnb\",\n src: \"https://api.iconify.design/tabler/brand-airbnb.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-paypal\",\n title: \"Paypal\",\n src: \"https://api.iconify.design/tabler/brand-paypal.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-visa\",\n title: \"Visa\",\n src: \"https://api.iconify.design/tabler/brand-visa.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-mastercard\",\n title: \"Mastercard\",\n src: \"https://api.iconify.design/tabler/brand-mastercard.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brand-stripe\",\n title: \"Stripe\",\n src: \"https://api.iconify.design/tabler/brand-stripe.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_briefcase\",\n title: \"Briefcase\",\n src: \"https://api.iconify.design/tabler/briefcase.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_browser\",\n title: \"Browser\",\n src: \"https://api.iconify.design/tabler/browser.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_browser-check\",\n title: \"Browser Check\",\n src: \"https://api.iconify.design/tabler/browser-check.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_browser-x\",\n title: \"Browser X\",\n src: \"https://api.iconify.design/tabler/browser-x.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_brush\",\n title: \"Brush\",\n src: \"https://api.iconify.design/tabler/brush.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bucket\",\n title: \"Bucket\",\n src: \"https://api.iconify.design/tabler/bucket.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bug\",\n title: \"Bug\",\n src: \"https://api.iconify.design/tabler/bug.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building\",\n title: \"Building\",\n src: \"https://api.iconify.design/tabler/building.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-arch\",\n title: \"Building Arch\",\n src: \"https://api.iconify.design/tabler/building-arch.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-bank\",\n title: \"Building Bank\",\n src: \"https://api.iconify.design/tabler/building-bank.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-bridge\",\n title: \"Building Bridge\",\n src: \"https://api.iconify.design/tabler/building-bridge.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-castle\",\n title: \"Building Castle\",\n src: \"https://api.iconify.design/tabler/building-castle.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-church\",\n title: \"Building Church\",\n src: \"https://api.iconify.design/tabler/building-church.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-community\",\n title: \"Building Community\",\n src: \"https://api.iconify.design/tabler/building-community.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-factory\",\n title: \"Building Factory\",\n src: \"https://api.iconify.design/tabler/building-factory.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-hospital\",\n title: \"Building Hospital\",\n src: \"https://api.iconify.design/tabler/building-hospital.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-skyscraper\",\n title: \"Building Skyscraper\",\n src: \"https://api.iconify.design/tabler/building-skyscraper.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-store\",\n title: \"Building Store\",\n src: \"https://api.iconify.design/tabler/building-store.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_building-warehouse\",\n title: \"Building Warehouse\",\n src: \"https://api.iconify.design/tabler/building-warehouse.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bulb\",\n title: \"Bulb\",\n src: \"https://api.iconify.design/tabler/bulb.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_bus\",\n title: \"Bus\",\n src: \"https://api.iconify.design/tabler/bus.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_businessplan\",\n title: \"Businessplan\",\n src: \"https://api.iconify.design/tabler/businessplan.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_cake\",\n title: \"Cake\",\n src: \"https://api.iconify.design/tabler/cake.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_calculator\",\n title: \"Calculator\",\n src: \"https://api.iconify.design/tabler/calculator.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_calendar\",\n title: \"Calendar\",\n src: \"https://api.iconify.design/tabler/calendar.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_calendar-event\",\n title: \"Calendar Event\",\n src: \"https://api.iconify.design/tabler/calendar-event.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_calendar-time\",\n title: \"Calendar Time\",\n src: \"https://api.iconify.design/tabler/calendar-time.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_camera\",\n title: \"Camera\",\n src: \"https://api.iconify.design/tabler/camera.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_camera-off\",\n title: \"Camera Off\",\n src: \"https://api.iconify.design/tabler/camera-off.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_campfire\",\n title: \"Campfire\",\n src: \"https://api.iconify.design/tabler/campfire.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_candle\",\n title: \"Candle\",\n src: \"https://api.iconify.design/tabler/candle.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_candy\",\n title: \"Candy\",\n src: \"https://api.iconify.design/tabler/candy.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_cane\",\n title: \"Cane\",\n src: \"https://api.iconify.design/tabler/cane.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_cannabis\",\n title: \"Cannabis\",\n src: \"https://api.iconify.design/tabler/cannabis.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_capture\",\n title: \"Capture\",\n src: \"https://api.iconify.design/tabler/capture.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_car\",\n title: \"Car\",\n src: \"https://api.iconify.design/tabler/car.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_caravan\",\n title: \"Caravan\",\n src: \"https://api.iconify.design/tabler/caravan.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_cardboards\",\n title: \"Cardboards\",\n src: \"https://api.iconify.design/tabler/cardboards.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_cards\",\n title: \"Cards\",\n src: \"https://api.iconify.design/tabler/cards.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_cash\",\n title: \"Cash\",\n src: \"https://api.iconify.design/tabler/cash.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_cast\",\n title: \"Cast\",\n src: \"https://api.iconify.design/tabler/cast.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_category\",\n title: \"Category\",\n src: \"https://api.iconify.design/tabler/category.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_cell\",\n title: \"Cell\",\n src: \"https://api.iconify.design/tabler/cell.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_certificate\",\n title: \"Certificate\",\n src: \"https://api.iconify.design/tabler/certificate.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chair-director\",\n title: \"Chair Director\",\n src: \"https://api.iconify.design/tabler/chair-director.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chalkboard\",\n title: \"Chalkboard\",\n src: \"https://api.iconify.design/tabler/chalkboard.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_charging-pile\",\n title: \"Charging Pile\",\n src: \"https://api.iconify.design/tabler/charging-pile.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chart-arcs\",\n title: \"Chart Arcs\",\n src: \"https://api.iconify.design/tabler/chart-arcs.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chart-area\",\n title: \"Chart Area\",\n src: \"https://api.iconify.design/tabler/chart-area.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chart-bar\",\n title: \"Chart Bar\",\n src: \"https://api.iconify.design/tabler/chart-bar.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chart-bubble\",\n title: \"Chart Bubble\",\n src: \"https://api.iconify.design/tabler/chart-bubble.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chart-candle\",\n title: \"Chart Candle\",\n src: \"https://api.iconify.design/tabler/chart-candle.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chart-donut\",\n title: \"Chart Donut\",\n src: \"https://api.iconify.design/tabler/chart-donut.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chart-dots\",\n title: \"Chart Dots\",\n src: \"https://api.iconify.design/tabler/chart-dots.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chart-infographic\",\n title: \"Chart Infographic\",\n src: \"https://api.iconify.design/tabler/chart-infographic.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chart-line\",\n title: \"Chart Line\",\n src: \"https://api.iconify.design/tabler/chart-line.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chart-pie\",\n title: \"Chart Pie\",\n src: \"https://api.iconify.design/tabler/chart-pie.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_check\",\n title: \"Check\",\n src: \"https://api.iconify.design/tabler/check.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_checkbox\",\n title: \"Checkbox\",\n src: \"https://api.iconify.design/tabler/checkbox.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_checklist\",\n title: \"Checklist\",\n src: \"https://api.iconify.design/tabler/checklist.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_checks\",\n title: \"Checks\",\n src: \"https://api.iconify.design/tabler/checks.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chef-hat\",\n title: \"Chef Hat\",\n src: \"https://api.iconify.design/tabler/chef-hat.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_cherry\",\n title: \"Cherry\",\n src: \"https://api.iconify.design/tabler/cherry.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chevron-down\",\n title: \"Chevron Down\",\n src: \"https://api.iconify.design/tabler/chevron-down.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chevron-left\",\n title: \"Chevron Left\",\n src: \"https://api.iconify.design/tabler/chevron-left.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chevron-right\",\n title: \"Chevron Right\",\n src: \"https://api.iconify.design/tabler/chevron-right.svg?color=%236366f1\",\n category: \"tabler\",\n },\n {\n id: \"tabler_chevron-up\",\n title: \"Chevron Up\",\n src: \"https://api.iconify.design/tabler/chevron-up.svg?color=%236366f1\",\n category: \"tabler\",\n },\n ],\n },\n {\n category: \"lucide\",\n title: \"Lucide\",\n entries: [\n {\n id: \"lucide_activity\",\n title: \"Activity\",\n src: \"https://api.iconify.design/lucide/activity.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_air-vent\",\n title: \"Air Vent\",\n src: \"https://api.iconify.design/lucide/air-vent.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_airplay\",\n title: \"Airplay\",\n src: \"https://api.iconify.design/lucide/airplay.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_alarm-clock\",\n title: \"Alarm Clock\",\n src: \"https://api.iconify.design/lucide/alarm-clock.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_anchor\",\n title: \"Anchor\",\n src: \"https://api.iconify.design/lucide/anchor.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_aperture\",\n title: \"Aperture\",\n src: \"https://api.iconify.design/lucide/aperture.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_archive\",\n title: \"Archive\",\n src: \"https://api.iconify.design/lucide/archive.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_arrow-big-down\",\n title: \"Arrow Big Down\",\n src: \"https://api.iconify.design/lucide/arrow-big-down.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_arrow-big-left\",\n title: \"Arrow Big Left\",\n src: \"https://api.iconify.design/lucide/arrow-big-left.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_arrow-big-right\",\n title: \"Arrow Big Right\",\n src: \"https://api.iconify.design/lucide/arrow-big-right.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_arrow-big-up\",\n title: \"Arrow Big Up\",\n src: \"https://api.iconify.design/lucide/arrow-big-up.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_arrow-down-left\",\n title: \"Arrow Down Left\",\n src: \"https://api.iconify.design/lucide/arrow-down-left.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_arrow-down-right\",\n title: \"Arrow Down Right\",\n src: \"https://api.iconify.design/lucide/arrow-down-right.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_arrow-up-left\",\n title: \"Arrow Up Left\",\n src: \"https://api.iconify.design/lucide/arrow-up-left.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_arrow-up-right\",\n title: \"Arrow Up Right\",\n src: \"https://api.iconify.design/lucide/arrow-up-right.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_at-sign\",\n title: \"At Sign\",\n src: \"https://api.iconify.design/lucide/at-sign.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_atom\",\n title: \"Atom\",\n src: \"https://api.iconify.design/lucide/atom.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_award\",\n title: \"Award\",\n src: \"https://api.iconify.design/lucide/award.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_axe\",\n title: \"Axe\",\n src: \"https://api.iconify.design/lucide/axe.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_backpack\",\n title: \"Backpack\",\n src: \"https://api.iconify.design/lucide/backpack.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_baggage-claim\",\n title: \"Baggage Claim\",\n src: \"https://api.iconify.design/lucide/baggage-claim.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_banknote\",\n title: \"Banknote\",\n src: \"https://api.iconify.design/lucide/banknote.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_battery\",\n title: \"Battery\",\n src: \"https://api.iconify.design/lucide/battery.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_beaker\",\n title: \"Beaker\",\n src: \"https://api.iconify.design/lucide/beaker.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_bed-double\",\n title: \"Bed Double\",\n src: \"https://api.iconify.design/lucide/bed-double.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_beef\",\n title: \"Beef\",\n src: \"https://api.iconify.design/lucide/beef.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_bell\",\n title: \"Bell\",\n src: \"https://api.iconify.design/lucide/bell.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_bike\",\n title: \"Bike\",\n src: \"https://api.iconify.design/lucide/bike.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_binary\",\n title: \"Binary\",\n src: \"https://api.iconify.design/lucide/binary.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_biohazard\",\n title: \"Biohazard\",\n src: \"https://api.iconify.design/lucide/biohazard.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_bluetooth\",\n title: \"Bluetooth\",\n src: \"https://api.iconify.design/lucide/bluetooth.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_bold\",\n title: \"Bold\",\n src: \"https://api.iconify.design/lucide/bold.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_bomb\",\n title: \"Bomb\",\n src: \"https://api.iconify.design/lucide/bomb.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_book\",\n title: \"Book\",\n src: \"https://api.iconify.design/lucide/book.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_book-open\",\n title: \"Book Open\",\n src: \"https://api.iconify.design/lucide/book-open.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_bookmark\",\n title: \"Bookmark\",\n src: \"https://api.iconify.design/lucide/bookmark.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_box\",\n title: \"Box\",\n src: \"https://api.iconify.design/lucide/box.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_briefcase\",\n title: \"Briefcase\",\n src: \"https://api.iconify.design/lucide/briefcase.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_brush\",\n title: \"Brush\",\n src: \"https://api.iconify.design/lucide/brush.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_bug\",\n title: \"Bug\",\n src: \"https://api.iconify.design/lucide/bug.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_building\",\n title: \"Building\",\n src: \"https://api.iconify.design/lucide/building.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_bus\",\n title: \"Bus\",\n src: \"https://api.iconify.design/lucide/bus.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cable\",\n title: \"Cable\",\n src: \"https://api.iconify.design/lucide/cable.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cake\",\n title: \"Cake\",\n src: \"https://api.iconify.design/lucide/cake.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_calculator\",\n title: \"Calculator\",\n src: \"https://api.iconify.design/lucide/calculator.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_calendar\",\n title: \"Calendar\",\n src: \"https://api.iconify.design/lucide/calendar.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_camera\",\n title: \"Camera\",\n src: \"https://api.iconify.design/lucide/camera.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_car\",\n title: \"Car\",\n src: \"https://api.iconify.design/lucide/car.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_caravan\",\n title: \"Caravan\",\n src: \"https://api.iconify.design/lucide/caravan.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_carrot\",\n title: \"Carrot\",\n src: \"https://api.iconify.design/lucide/carrot.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cast\",\n title: \"Cast\",\n src: \"https://api.iconify.design/lucide/cast.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_check\",\n title: \"Check\",\n src: \"https://api.iconify.design/lucide/check.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_chevron-down\",\n title: \"Chevron Down\",\n src: \"https://api.iconify.design/lucide/chevron-down.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_chevron-left\",\n title: \"Chevron Left\",\n src: \"https://api.iconify.design/lucide/chevron-left.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_chevron-right\",\n title: \"Chevron Right\",\n src: \"https://api.iconify.design/lucide/chevron-right.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_chevron-up\",\n title: \"Chevron Up\",\n src: \"https://api.iconify.design/lucide/chevron-up.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_church\",\n title: \"Church\",\n src: \"https://api.iconify.design/lucide/church.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_circle\",\n title: \"Circle\",\n src: \"https://api.iconify.design/lucide/circle.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_clipboard\",\n title: \"Clipboard\",\n src: \"https://api.iconify.design/lucide/clipboard.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_clipboard-check\",\n title: \"Clipboard Check\",\n src: \"https://api.iconify.design/lucide/clipboard-check.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_clock\",\n title: \"Clock\",\n src: \"https://api.iconify.design/lucide/clock.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud\",\n title: \"Cloud\",\n src: \"https://api.iconify.design/lucide/cloud.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud-cog\",\n title: \"Cloud Cog\",\n src: \"https://api.iconify.design/lucide/cloud-cog.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud-drizzle\",\n title: \"Cloud Drizzle\",\n src: \"https://api.iconify.design/lucide/cloud-drizzle.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud-fog\",\n title: \"Cloud Fog\",\n src: \"https://api.iconify.design/lucide/cloud-fog.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud-hail\",\n title: \"Cloud Hail\",\n src: \"https://api.iconify.design/lucide/cloud-hail.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud-lightning\",\n title: \"Cloud Lightning\",\n src: \"https://api.iconify.design/lucide/cloud-lightning.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud-moon\",\n title: \"Cloud Moon\",\n src: \"https://api.iconify.design/lucide/cloud-moon.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud-off\",\n title: \"Cloud Off\",\n src: \"https://api.iconify.design/lucide/cloud-off.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud-rain\",\n title: \"Cloud Rain\",\n src: \"https://api.iconify.design/lucide/cloud-rain.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud-snow\",\n title: \"Cloud Snow\",\n src: \"https://api.iconify.design/lucide/cloud-snow.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloud-sun\",\n title: \"Cloud Sun\",\n src: \"https://api.iconify.design/lucide/cloud-sun.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cloudy\",\n title: \"Cloudy\",\n src: \"https://api.iconify.design/lucide/cloudy.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_clover\",\n title: \"Clover\",\n src: \"https://api.iconify.design/lucide/clover.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_club\",\n title: \"Club\",\n src: \"https://api.iconify.design/lucide/club.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_code\",\n title: \"Code\",\n src: \"https://api.iconify.design/lucide/code.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_coffee\",\n title: \"Coffee\",\n src: \"https://api.iconify.design/lucide/coffee.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cog\",\n title: \"Cog\",\n src: \"https://api.iconify.design/lucide/cog.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_coins\",\n title: \"Coins\",\n src: \"https://api.iconify.design/lucide/coins.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_command\",\n title: \"Command\",\n src: \"https://api.iconify.design/lucide/command.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_compass\",\n title: \"Compass\",\n src: \"https://api.iconify.design/lucide/compass.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_component\",\n title: \"Component\",\n src: \"https://api.iconify.design/lucide/component.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_computer\",\n title: \"Computer\",\n src: \"https://api.iconify.design/lucide/computer.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_concierge-bell\",\n title: \"Concierge Bell\",\n src: \"https://api.iconify.design/lucide/concierge-bell.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_container\",\n title: \"Container\",\n src: \"https://api.iconify.design/lucide/container.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_contact\",\n title: \"Contact\",\n src: \"https://api.iconify.design/lucide/contact.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_contrast\",\n title: \"Contrast\",\n src: \"https://api.iconify.design/lucide/contrast.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cookie\",\n title: \"Cookie\",\n src: \"https://api.iconify.design/lucide/cookie.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_copy\",\n title: \"Copy\",\n src: \"https://api.iconify.design/lucide/copy.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_copyleft\",\n title: \"Copyleft\",\n src: \"https://api.iconify.design/lucide/copyleft.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_copyright\",\n title: \"Copyright\",\n src: \"https://api.iconify.design/lucide/copyright.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_corner-down-left\",\n title: \"Corner Down Left\",\n src: \"https://api.iconify.design/lucide/corner-down-left.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_corner-down-right\",\n title: \"Corner Down Right\",\n src: \"https://api.iconify.design/lucide/corner-down-right.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_corner-up-left\",\n title: \"Corner Up Left\",\n src: \"https://api.iconify.design/lucide/corner-up-left.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_corner-up-right\",\n title: \"Corner Up Right\",\n src: \"https://api.iconify.design/lucide/corner-up-right.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cpu\",\n title: \"Cpu\",\n src: \"https://api.iconify.design/lucide/cpu.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_creative-commons\",\n title: \"Creative Commons\",\n src: \"https://api.iconify.design/lucide/creative-commons.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_credit-card\",\n title: \"Credit Card\",\n src: \"https://api.iconify.design/lucide/credit-card.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_croissant\",\n title: \"Croissant\",\n src: \"https://api.iconify.design/lucide/croissant.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_crop\",\n title: \"Crop\",\n src: \"https://api.iconify.design/lucide/crop.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_crosshair\",\n title: \"Crosshair\",\n src: \"https://api.iconify.design/lucide/crosshair.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_crown\",\n title: \"Crown\",\n src: \"https://api.iconify.design/lucide/crown.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_cup-soda\",\n title: \"Cup Soda\",\n src: \"https://api.iconify.design/lucide/cup-soda.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_currency\",\n title: \"Currency\",\n src: \"https://api.iconify.design/lucide/currency.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_database\",\n title: \"Database\",\n src: \"https://api.iconify.design/lucide/database.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_database-backup\",\n title: \"Database Backup\",\n src: \"https://api.iconify.design/lucide/database-backup.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_database-zap\",\n title: \"Database Zap\",\n src: \"https://api.iconify.design/lucide/database-zap.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_delete\",\n title: \"Delete\",\n src: \"https://api.iconify.design/lucide/delete.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_diamond\",\n title: \"Diamond\",\n src: \"https://api.iconify.design/lucide/diamond.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dice-1\",\n title: \"Dice 1\",\n src: \"https://api.iconify.design/lucide/dice-1.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dice-2\",\n title: \"Dice 2\",\n src: \"https://api.iconify.design/lucide/dice-2.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dice-3\",\n title: \"Dice 3\",\n src: \"https://api.iconify.design/lucide/dice-3.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dice-4\",\n title: \"Dice 4\",\n src: \"https://api.iconify.design/lucide/dice-4.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dice-5\",\n title: \"Dice 5\",\n src: \"https://api.iconify.design/lucide/dice-5.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dice-6\",\n title: \"Dice 6\",\n src: \"https://api.iconify.design/lucide/dice-6.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_disc\",\n title: \"Disc\",\n src: \"https://api.iconify.design/lucide/disc.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_disc-2\",\n title: \"Disc 2\",\n src: \"https://api.iconify.design/lucide/disc-2.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_disc-3\",\n title: \"Disc 3\",\n src: \"https://api.iconify.design/lucide/disc-3.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_divide\",\n title: \"Divide\",\n src: \"https://api.iconify.design/lucide/divide.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dna\",\n title: \"Dna\",\n src: \"https://api.iconify.design/lucide/dna.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dog\",\n title: \"Dog\",\n src: \"https://api.iconify.design/lucide/dog.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dollar-sign\",\n title: \"Dollar Sign\",\n src: \"https://api.iconify.design/lucide/dollar-sign.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_door-closed\",\n title: \"Door Closed\",\n src: \"https://api.iconify.design/lucide/door-closed.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_door-open\",\n title: \"Door Open\",\n src: \"https://api.iconify.design/lucide/door-open.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dot\",\n title: \"Dot\",\n src: \"https://api.iconify.design/lucide/dot.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_download\",\n title: \"Download\",\n src: \"https://api.iconify.design/lucide/download.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_droplet\",\n title: \"Droplet\",\n src: \"https://api.iconify.design/lucide/droplet.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_drum\",\n title: \"Drum\",\n src: \"https://api.iconify.design/lucide/drum.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_drumstick\",\n title: \"Drumstick\",\n src: \"https://api.iconify.design/lucide/drumstick.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_dumbbell\",\n title: \"Dumbbell\",\n src: \"https://api.iconify.design/lucide/dumbbell.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_ear\",\n title: \"Ear\",\n src: \"https://api.iconify.design/lucide/ear.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_egg\",\n title: \"Egg\",\n src: \"https://api.iconify.design/lucide/egg.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_equal\",\n title: \"Equal\",\n src: \"https://api.iconify.design/lucide/equal.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_eraser\",\n title: \"Eraser\",\n src: \"https://api.iconify.design/lucide/eraser.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_euro\",\n title: \"Euro\",\n src: \"https://api.iconify.design/lucide/euro.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_expand\",\n title: \"Expand\",\n src: \"https://api.iconify.design/lucide/expand.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_external-link\",\n title: \"External Link\",\n src: \"https://api.iconify.design/lucide/external-link.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_eye\",\n title: \"Eye\",\n src: \"https://api.iconify.design/lucide/eye.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_eye-off\",\n title: \"Eye Off\",\n src: \"https://api.iconify.design/lucide/eye-off.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_factory\",\n title: \"Factory\",\n src: \"https://api.iconify.design/lucide/factory.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_fan\",\n title: \"Fan\",\n src: \"https://api.iconify.design/lucide/fan.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_fast-forward\",\n title: \"Fast Forward\",\n src: \"https://api.iconify.design/lucide/fast-forward.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_feather\",\n title: \"Feather\",\n src: \"https://api.iconify.design/lucide/feather.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file\",\n title: \"File\",\n src: \"https://api.iconify.design/lucide/file.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-archive\",\n title: \"File Archive\",\n src: \"https://api.iconify.design/lucide/file-archive.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-badge\",\n title: \"File Badge\",\n src: \"https://api.iconify.design/lucide/file-badge.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-box\",\n title: \"File Box\",\n src: \"https://api.iconify.design/lucide/file-box.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-check\",\n title: \"File Check\",\n src: \"https://api.iconify.design/lucide/file-check.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-clock\",\n title: \"File Clock\",\n src: \"https://api.iconify.design/lucide/file-clock.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-code\",\n title: \"File Code\",\n src: \"https://api.iconify.design/lucide/file-code.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-cog\",\n title: \"File Cog\",\n src: \"https://api.iconify.design/lucide/file-cog.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-diff\",\n title: \"File Diff\",\n src: \"https://api.iconify.design/lucide/file-diff.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-digit\",\n title: \"File Digit\",\n src: \"https://api.iconify.design/lucide/file-digit.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-down\",\n title: \"File Down\",\n src: \"https://api.iconify.design/lucide/file-down.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-heart\",\n title: \"File Heart\",\n src: \"https://api.iconify.design/lucide/file-heart.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-image\",\n title: \"File Image\",\n src: \"https://api.iconify.design/lucide/file-image.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-input\",\n title: \"File Input\",\n src: \"https://api.iconify.design/lucide/file-input.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-key\",\n title: \"File Key\",\n src: \"https://api.iconify.design/lucide/file-key.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-lock\",\n title: \"File Lock\",\n src: \"https://api.iconify.design/lucide/file-lock.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-minus\",\n title: \"File Minus\",\n src: \"https://api.iconify.design/lucide/file-minus.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-output\",\n title: \"File Output\",\n src: \"https://api.iconify.design/lucide/file-output.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-pen\",\n title: \"File Pen\",\n src: \"https://api.iconify.design/lucide/file-pen.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-plus\",\n title: \"File Plus\",\n src: \"https://api.iconify.design/lucide/file-plus.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-scan\",\n title: \"File Scan\",\n src: \"https://api.iconify.design/lucide/file-scan.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-search\",\n title: \"File Search\",\n src: \"https://api.iconify.design/lucide/file-search.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-spreadsheet\",\n title: \"File Spreadsheet\",\n src: \"https://api.iconify.design/lucide/file-spreadsheet.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-symlink\",\n title: \"File Symlink\",\n src: \"https://api.iconify.design/lucide/file-symlink.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-terminal\",\n title: \"File Terminal\",\n src: \"https://api.iconify.design/lucide/file-terminal.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-text\",\n title: \"File Text\",\n src: \"https://api.iconify.design/lucide/file-text.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-type\",\n title: \"File Type\",\n src: \"https://api.iconify.design/lucide/file-type.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-up\",\n title: \"File Up\",\n src: \"https://api.iconify.design/lucide/file-up.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-volume\",\n title: \"File Volume\",\n src: \"https://api.iconify.design/lucide/file-volume.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_file-x\",\n title: \"File X\",\n src: \"https://api.iconify.design/lucide/file-x.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_files\",\n title: \"Files\",\n src: \"https://api.iconify.design/lucide/files.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_film\",\n title: \"Film\",\n src: \"https://api.iconify.design/lucide/film.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_fire-extinguisher\",\n title: \"Fire Extinguisher\",\n src: \"https://api.iconify.design/lucide/fire-extinguisher.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_fish\",\n title: \"Fish\",\n src: \"https://api.iconify.design/lucide/fish.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_flag\",\n title: \"Flag\",\n src: \"https://api.iconify.design/lucide/flag.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_flag-off\",\n title: \"Flag Off\",\n src: \"https://api.iconify.design/lucide/flag-off.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_flag-triangle-left\",\n title: \"Flag Triangle Left\",\n src: \"https://api.iconify.design/lucide/flag-triangle-left.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_flag-triangle-right\",\n title: \"Flag Triangle Right\",\n src: \"https://api.iconify.design/lucide/flag-triangle-right.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_flame\",\n title: \"Flame\",\n src: \"https://api.iconify.design/lucide/flame.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_flashlight\",\n title: \"Flashlight\",\n src: \"https://api.iconify.design/lucide/flashlight.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_flask-conical\",\n title: \"Flask Conical\",\n src: \"https://api.iconify.design/lucide/flask-conical.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_flask-round\",\n title: \"Flask Round\",\n src: \"https://api.iconify.design/lucide/flask-round.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_flower\",\n title: \"Flower\",\n src: \"https://api.iconify.design/lucide/flower.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_focus\",\n title: \"Focus\",\n src: \"https://api.iconify.design/lucide/focus.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder\",\n title: \"Folder\",\n src: \"https://api.iconify.design/lucide/folder.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-archive\",\n title: \"Folder Archive\",\n src: \"https://api.iconify.design/lucide/folder-archive.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-check\",\n title: \"Folder Check\",\n src: \"https://api.iconify.design/lucide/folder-check.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-clock\",\n title: \"Folder Clock\",\n src: \"https://api.iconify.design/lucide/folder-clock.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-closed\",\n title: \"Folder Closed\",\n src: \"https://api.iconify.design/lucide/folder-closed.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-cog\",\n title: \"Folder Cog\",\n src: \"https://api.iconify.design/lucide/folder-cog.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-down\",\n title: \"Folder Down\",\n src: \"https://api.iconify.design/lucide/folder-down.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-git\",\n title: \"Folder Git\",\n src: \"https://api.iconify.design/lucide/folder-git.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-heart\",\n title: \"Folder Heart\",\n src: \"https://api.iconify.design/lucide/folder-heart.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-input\",\n title: \"Folder Input\",\n src: \"https://api.iconify.design/lucide/folder-input.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-kanban\",\n title: \"Folder Kanban\",\n src: \"https://api.iconify.design/lucide/folder-kanban.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-key\",\n title: \"Folder Key\",\n src: \"https://api.iconify.design/lucide/folder-key.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-lock\",\n title: \"Folder Lock\",\n src: \"https://api.iconify.design/lucide/folder-lock.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-minus\",\n title: \"Folder Minus\",\n src: \"https://api.iconify.design/lucide/folder-minus.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-open\",\n title: \"Folder Open\",\n src: \"https://api.iconify.design/lucide/folder-open.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-output\",\n title: \"Folder Output\",\n src: \"https://api.iconify.design/lucide/folder-output.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-pen\",\n title: \"Folder Pen\",\n src: \"https://api.iconify.design/lucide/folder-pen.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-plus\",\n title: \"Folder Plus\",\n src: \"https://api.iconify.design/lucide/folder-plus.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-root\",\n title: \"Folder Root\",\n src: \"https://api.iconify.design/lucide/folder-root.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-search\",\n title: \"Folder Search\",\n src: \"https://api.iconify.design/lucide/folder-search.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-symlink\",\n title: \"Folder Symlink\",\n src: \"https://api.iconify.design/lucide/folder-symlink.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-sync\",\n title: \"Folder Sync\",\n src: \"https://api.iconify.design/lucide/folder-sync.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-tree\",\n title: \"Folder Tree\",\n src: \"https://api.iconify.design/lucide/folder-tree.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-up\",\n title: \"Folder Up\",\n src: \"https://api.iconify.design/lucide/folder-up.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folder-x\",\n title: \"Folder X\",\n src: \"https://api.iconify.design/lucide/folder-x.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_folders\",\n title: \"Folders\",\n src: \"https://api.iconify.design/lucide/folders.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_footprints\",\n title: \"Footprints\",\n src: \"https://api.iconify.design/lucide/footprints.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_forklift\",\n title: \"Forklift\",\n src: \"https://api.iconify.design/lucide/forklift.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_forward\",\n title: \"Forward\",\n src: \"https://api.iconify.design/lucide/forward.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_frame\",\n title: \"Frame\",\n src: \"https://api.iconify.design/lucide/frame.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_frown\",\n title: \"Frown\",\n src: \"https://api.iconify.design/lucide/frown.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_fuel\",\n title: \"Fuel\",\n src: \"https://api.iconify.design/lucide/fuel.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_gamepad\",\n title: \"Gamepad\",\n src: \"https://api.iconify.design/lucide/gamepad.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_gamepad-2\",\n title: \"Gamepad 2\",\n src: \"https://api.iconify.design/lucide/gamepad-2.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_gauge\",\n title: \"Gauge\",\n src: \"https://api.iconify.design/lucide/gauge.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_gavel\",\n title: \"Gavel\",\n src: \"https://api.iconify.design/lucide/gavel.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_gem\",\n title: \"Gem\",\n src: \"https://api.iconify.design/lucide/gem.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_ghost\",\n title: \"Ghost\",\n src: \"https://api.iconify.design/lucide/ghost.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_gift\",\n title: \"Gift\",\n src: \"https://api.iconify.design/lucide/gift.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_git-branch\",\n title: \"Git Branch\",\n src: \"https://api.iconify.design/lucide/git-branch.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_git-compare\",\n title: \"Git Compare\",\n src: \"https://api.iconify.design/lucide/git-compare.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_git-fork\",\n title: \"Git Fork\",\n src: \"https://api.iconify.design/lucide/git-fork.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_git-merge\",\n title: \"Git Merge\",\n src: \"https://api.iconify.design/lucide/git-merge.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_git-pull-request\",\n title: \"Git Pull Request\",\n src: \"https://api.iconify.design/lucide/git-pull-request.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_glasses\",\n title: \"Glasses\",\n src: \"https://api.iconify.design/lucide/glasses.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_globe\",\n title: \"Globe\",\n src: \"https://api.iconify.design/lucide/globe.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_goal\",\n title: \"Goal\",\n src: \"https://api.iconify.design/lucide/goal.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_grape\",\n title: \"Grape\",\n src: \"https://api.iconify.design/lucide/grape.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_grip\",\n title: \"Grip\",\n src: \"https://api.iconify.design/lucide/grip.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_grip-horizontal\",\n title: \"Grip Horizontal\",\n src: \"https://api.iconify.design/lucide/grip-horizontal.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_grip-vertical\",\n title: \"Grip Vertical\",\n src: \"https://api.iconify.design/lucide/grip-vertical.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_group\",\n title: \"Group\",\n src: \"https://api.iconify.design/lucide/group.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hammer\",\n title: \"Hammer\",\n src: \"https://api.iconify.design/lucide/hammer.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hand\",\n title: \"Hand\",\n src: \"https://api.iconify.design/lucide/hand.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hand-metal\",\n title: \"Hand Metal\",\n src: \"https://api.iconify.design/lucide/hand-metal.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_handshake\",\n title: \"Handshake\",\n src: \"https://api.iconify.design/lucide/handshake.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hard-drive\",\n title: \"Hard Drive\",\n src: \"https://api.iconify.design/lucide/hard-drive.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hard-hat\",\n title: \"Hard Hat\",\n src: \"https://api.iconify.design/lucide/hard-hat.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hash\",\n title: \"Hash\",\n src: \"https://api.iconify.design/lucide/hash.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_haze\",\n title: \"Haze\",\n src: \"https://api.iconify.design/lucide/haze.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hdmi-port\",\n title: \"Hdmi Port\",\n src: \"https://api.iconify.design/lucide/hdmi-port.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_heading\",\n title: \"Heading\",\n src: \"https://api.iconify.design/lucide/heading.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_headphones\",\n title: \"Headphones\",\n src: \"https://api.iconify.design/lucide/headphones.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_headset\",\n title: \"Headset\",\n src: \"https://api.iconify.design/lucide/headset.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_heart\",\n title: \"Heart\",\n src: \"https://api.iconify.design/lucide/heart.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_heart-handshake\",\n title: \"Heart Handshake\",\n src: \"https://api.iconify.design/lucide/heart-handshake.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_heart-pulse\",\n title: \"Heart Pulse\",\n src: \"https://api.iconify.design/lucide/heart-pulse.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hexagon\",\n title: \"Hexagon\",\n src: \"https://api.iconify.design/lucide/hexagon.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_highlighter\",\n title: \"Highlighter\",\n src: \"https://api.iconify.design/lucide/highlighter.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_history\",\n title: \"History\",\n src: \"https://api.iconify.design/lucide/history.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hop\",\n title: \"Hop\",\n src: \"https://api.iconify.design/lucide/hop.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hop-off\",\n title: \"Hop Off\",\n src: \"https://api.iconify.design/lucide/hop-off.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hotel\",\n title: \"Hotel\",\n src: \"https://api.iconify.design/lucide/hotel.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_hourglass\",\n title: \"Hourglass\",\n src: \"https://api.iconify.design/lucide/hourglass.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_image\",\n title: \"Image\",\n src: \"https://api.iconify.design/lucide/image.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_image-minus\",\n title: \"Image Minus\",\n src: \"https://api.iconify.design/lucide/image-minus.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_image-off\",\n title: \"Image Off\",\n src: \"https://api.iconify.design/lucide/image-off.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_image-plus\",\n title: \"Image Plus\",\n src: \"https://api.iconify.design/lucide/image-plus.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_import\",\n title: \"Import\",\n src: \"https://api.iconify.design/lucide/import.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_inbox\",\n title: \"Inbox\",\n src: \"https://api.iconify.design/lucide/inbox.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_indian-rupee\",\n title: \"Indian Rupee\",\n src: \"https://api.iconify.design/lucide/indian-rupee.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_infinity\",\n title: \"Infinity\",\n src: \"https://api.iconify.design/lucide/infinity.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_info\",\n title: \"Info\",\n src: \"https://api.iconify.design/lucide/info.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_italic\",\n title: \"Italic\",\n src: \"https://api.iconify.design/lucide/italic.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_iteration-ccw\",\n title: \"Iteration Ccw\",\n src: \"https://api.iconify.design/lucide/iteration-ccw.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_iteration-cw\",\n title: \"Iteration Cw\",\n src: \"https://api.iconify.design/lucide/iteration-cw.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_japanese-yen\",\n title: \"Japanese Yen\",\n src: \"https://api.iconify.design/lucide/japanese-yen.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_joystick\",\n title: \"Joystick\",\n src: \"https://api.iconify.design/lucide/joystick.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_kanban\",\n title: \"Kanban\",\n src: \"https://api.iconify.design/lucide/kanban.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_key\",\n title: \"Key\",\n src: \"https://api.iconify.design/lucide/key.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_keyboard\",\n title: \"Keyboard\",\n src: \"https://api.iconify.design/lucide/keyboard.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_key-round\",\n title: \"Key Round\",\n src: \"https://api.iconify.design/lucide/key-round.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_lamp\",\n title: \"Lamp\",\n src: \"https://api.iconify.design/lucide/lamp.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_lamp-ceiling\",\n title: \"Lamp Ceiling\",\n src: \"https://api.iconify.design/lucide/lamp-ceiling.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_lamp-desk\",\n title: \"Lamp Desk\",\n src: \"https://api.iconify.design/lucide/lamp-desk.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_lamp-floor\",\n title: \"Lamp Floor\",\n src: \"https://api.iconify.design/lucide/lamp-floor.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_lamp-wall-down\",\n title: \"Lamp Wall Down\",\n src: \"https://api.iconify.design/lucide/lamp-wall-down.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_lamp-wall-up\",\n title: \"Lamp Wall Up\",\n src: \"https://api.iconify.design/lucide/lamp-wall-up.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_land-plot\",\n title: \"Land Plot\",\n src: \"https://api.iconify.design/lucide/land-plot.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_landmark\",\n title: \"Landmark\",\n src: \"https://api.iconify.design/lucide/landmark.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_languages\",\n title: \"Languages\",\n src: \"https://api.iconify.design/lucide/languages.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_laptop\",\n title: \"Laptop\",\n src: \"https://api.iconify.design/lucide/laptop.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_lasso\",\n title: \"Lasso\",\n src: \"https://api.iconify.design/lucide/lasso.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_lasso-select\",\n title: \"Lasso Select\",\n src: \"https://api.iconify.design/lucide/lasso-select.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_laugh\",\n title: \"Laugh\",\n src: \"https://api.iconify.design/lucide/laugh.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_layers\",\n title: \"Layers\",\n src: \"https://api.iconify.design/lucide/layers.svg?color=%236366f1\",\n category: \"lucide\",\n },\n {\n id: \"lucide_leaf\",\n title: \"Leaf\",\n src: \"https://api.iconify.design/lucide/leaf.svg?color=%236366f1\",\n category: \"lucide\",\n },\n ],\n },\n];\n\nexport const ICON_LIBRARY: IconEntry[] = ICON_GROUPS.flatMap((g) => g.entries);\n","import type { ImageElement } from \"@kokoa/clotho\";\nimport {\n addElement,\n getDef,\n uniqueElementId,\n registerExternalAsset,\n} from \"./state\";\nimport type { IconCategory, IconEntry } from \"./icon-library-types\";\nimport { ICON_GROUPS, ICON_LIBRARY } from \"./icon-data\";\n\nexport type { IconCategory, IconEntry } from \"./icon-library-types\";\nexport { ICON_LIBRARY } from \"./icon-data\";\n\nconst CATEGORY_LABELS: Record<IconCategory, string> = {\n aws: \"🟧 AWS\",\n gcp: \"🌥 GCP\",\n azure: \"🟦 Azure\",\n cloud: \"☁ Cloud\",\n database: \"🗄 DB\",\n language: \"💻 Lang\",\n frontend: \"🎨 FE\",\n backend: \"⚙ BE\",\n tool: \"🔧 Tool\",\n network: \"🌐 Net\",\n erd: \"🔗 ERD\",\n arrow: \"➡ Arrow\",\n document: \"📄 Doc\",\n device: \"💾 Device\",\n communication: \"💬 Comm\",\n action: \"⚡ Action\",\n chart: \"📊 Chart\",\n shape: \"◇ Shape\",\n user: \"👤 User\",\n media: \"🎵 Media\",\n finance: \"💰 Finance\",\n crypto: \"₿ Crypto\",\n symbol: \"🔣 Symbol\",\n tabler: \"✦ Tabler\",\n lucide: \"✧ Lucide\",\n};\n\nconst PAGE_SIZE = 120;\n\nexport class IconLibraryDialog {\n private dialog: HTMLDialogElement;\n private listEl: HTMLElement;\n private searchEl: HTMLInputElement;\n private categoryFilter: IconCategory | \"all\" = \"all\";\n private query: string = \"\";\n private renderedCount: number = 0;\n private lastFiltered: IconEntry[] = [];\n private observer: IntersectionObserver | null = null;\n private sentinel: HTMLDivElement | null = null;\n\n constructor(\n dialog: HTMLDialogElement,\n listEl: HTMLElement,\n searchEl: HTMLInputElement,\n ) {\n this.dialog = dialog;\n this.listEl = listEl;\n this.searchEl = searchEl;\n this.bind();\n }\n\n static mount(): IconLibraryDialog | null {\n const dialog = document.getElementById(\n \"studio-icon-dialog\",\n ) as HTMLDialogElement | null;\n const listEl = document.getElementById(\"studio-icon-list\");\n const searchEl = document.getElementById(\n \"studio-icon-search\",\n ) as HTMLInputElement | null;\n if (!dialog || !listEl || !searchEl) return null;\n return new IconLibraryDialog(dialog, listEl, searchEl);\n }\n\n open(): void {\n this.render();\n if (typeof this.dialog.showModal === \"function\") this.dialog.showModal();\n else this.dialog.setAttribute(\"open\", \"\");\n setTimeout(() => this.searchEl.focus(), 0);\n }\n\n close(): void {\n if (typeof this.dialog.close === \"function\") this.dialog.close();\n else this.dialog.removeAttribute(\"open\");\n this.observer?.disconnect();\n this.observer = null;\n this.sentinel = null;\n }\n\n private bind(): void {\n let timer: number | null = null;\n this.searchEl.addEventListener(\"input\", () => {\n this.query = this.searchEl.value.trim().toLowerCase();\n if (timer !== null) clearTimeout(timer);\n timer = window.setTimeout(() => this.render(), 80);\n });\n this.dialog.addEventListener(\"click\", (e) => {\n const target = e.target as HTMLElement;\n if (target.closest(\"[data-icon-dialog-close]\")) {\n this.close();\n return;\n }\n const catBtn = target.closest<HTMLElement>(\"[data-icon-cat]\");\n if (catBtn) {\n this.categoryFilter = (catBtn.dataset.iconCat ?? \"all\") as\n IconCategory | \"all\";\n this.render();\n return;\n }\n const pickBtn = target.closest<HTMLElement>(\"[data-icon-pick]\");\n if (pickBtn) {\n const id = pickBtn.dataset.iconPick ?? \"\";\n this.insertIcon(id);\n return;\n }\n });\n }\n\n private filtered(): IconEntry[] {\n const list =\n this.categoryFilter === \"all\"\n ? ICON_LIBRARY\n : (ICON_GROUPS.find((g) => g.category === this.categoryFilter)\n ?.entries ?? []);\n if (!this.query) return list;\n const q = this.query;\n return list.filter(\n (it) =>\n it.id.toLowerCase().includes(q) || it.title.toLowerCase().includes(q),\n );\n }\n\n private render(): void {\n const filtered = this.filtered();\n this.lastFiltered = filtered;\n const cats: (\"all\" | IconCategory)[] = [\n \"all\",\n ...ICON_GROUPS.map((g) => g.category),\n ];\n const catBar = cats\n .map((c) => {\n const label = c === \"all\" ? \"전체\" : CATEGORY_LABELS[c];\n const count =\n c === \"all\"\n ? ICON_LIBRARY.length\n : (ICON_GROUPS.find((g) => g.category === c)?.entries.length ?? 0);\n return `<button type=\"button\" data-icon-cat=\"${c}\" class=\"studio-icon-cat-btn ${this.categoryFilter === c ? \"is-active\" : \"\"}\">${label} <span class=\"studio-icon-cat-count\">${count}</span></button>`;\n })\n .join(\"\");\n\n if (filtered.length === 0) {\n this.listEl.innerHTML = `\n <div class=\"studio-icon-cat-bar\">${catBar}</div>\n <div class=\"studio-icon-grid\"><div class=\"studio-icon-empty\">검색 결과 없음 (${ICON_LIBRARY.length}개 아이콘)</div></div>\n `;\n return;\n }\n\n this.renderedCount = Math.min(PAGE_SIZE, filtered.length);\n const grid = filtered\n .slice(0, this.renderedCount)\n .map((it) => this.renderItem(it))\n .join(\"\");\n const moreCount = Math.max(0, filtered.length - this.renderedCount);\n\n this.listEl.innerHTML = `\n <div class=\"studio-icon-cat-bar\">${catBar}</div>\n <div class=\"studio-icon-result-info\">총 ${filtered.length}개 ${this.query ? `<code>${escapeHtml(this.query)}</code> 검색 결과` : \"\"}</div>\n <div class=\"studio-icon-grid\" id=\"studio-icon-grid\">${grid}</div>\n ${moreCount > 0 ? `<div class=\"studio-icon-sentinel\" id=\"studio-icon-sentinel\">${moreCount}개 더 표시…</div>` : \"\"}\n `;\n\n this.observer?.disconnect();\n const sent = document.getElementById(\n \"studio-icon-sentinel\",\n ) as HTMLDivElement | null;\n this.sentinel = sent;\n if (sent) {\n this.observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) this.loadMore();\n }\n },\n {\n root: this.dialog.querySelector(\".studio-dialog-body\") ?? null,\n rootMargin: \"200px\",\n },\n );\n this.observer.observe(sent);\n }\n }\n\n private loadMore(): void {\n const grid = document.getElementById(\"studio-icon-grid\");\n if (!grid) return;\n const next = Math.min(\n this.renderedCount + PAGE_SIZE,\n this.lastFiltered.length,\n );\n const slice = this.lastFiltered.slice(this.renderedCount, next);\n grid.insertAdjacentHTML(\n \"beforeend\",\n slice.map((it) => this.renderItem(it)).join(\"\"),\n );\n this.renderedCount = next;\n const remaining = this.lastFiltered.length - next;\n if (this.sentinel) {\n if (remaining > 0) {\n this.sentinel.textContent = `${remaining}개 더 표시…`;\n } else {\n this.observer?.disconnect();\n this.sentinel.remove();\n this.sentinel = null;\n }\n }\n }\n\n private renderItem(it: IconEntry): string {\n return `<button type=\"button\" data-icon-pick=\"${escapeHtml(it.id)}\" class=\"studio-icon-item\" title=\"${escapeHtml(it.title)} · ${escapeHtml(it.id)}\">\n <img loading=\"lazy\" decoding=\"async\" src=\"${escapeHtml(it.src)}\" alt=\"${escapeHtml(it.title)}\" onerror=\"this.classList.add('is-error')\" />\n <span>${escapeHtml(it.title)}</span>\n </button>`;\n }\n\n private insertIcon(iconId: string): void {\n const def = getDef();\n if (!def) return;\n const icon = ICON_LIBRARY.find((i) => i.id === iconId);\n if (!icon) return;\n const cx = def.canvas.width / 2;\n const cy = def.canvas.height / 2;\n const safeBase = iconId.replace(/[^a-z0-9]/gi, \"\").toLowerCase() || \"icon\";\n const id = uniqueElementId(safeBase);\n const el: ImageElement = {\n type: \"image\",\n id,\n rotation: 0,\n appearances: [],\n tracks: [],\n x: cx - 32,\n y: cy - 32,\n width: 64,\n height: 64,\n assetId: registerExternalAsset(icon.src),\n preserveAspectRatio: \"xMidYMid meet\",\n opacity: 1,\n };\n addElement(el);\n this.close();\n }\n}\n\nfunction escapeHtml(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\");\n}\n","import {\n addElement,\n getDef,\n registerDataUriAsset,\n uniqueElementId,\n} from \"./state\";\n\nexport type SetStatus = (text: string, kind?: \"ok\" | \"warn\" | \"error\") => void;\n\nexport interface ImageUploadHost {\n app: HTMLElement;\n setStatus: SetStatus;\n}\n\nfunction loadImageSize(src: string): Promise<{ w: number; h: number } | null> {\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => resolve({ w: img.naturalWidth, h: img.naturalHeight });\n img.onerror = () => resolve(null);\n img.src = src;\n });\n}\n\nfunction readAsDataUrl(file: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(String(reader.result));\n reader.onerror = () => reject(new Error(\"파일을 읽지 못했습니다\"));\n reader.readAsDataURL(file);\n });\n}\n\n// MinIO(media-api) 미가용: 업로드 대신 data URL 로 인라인해 def 에 직접 직렬화한다.\nexport async function uploadAndInsertImage(\n file: File,\n host: ImageUploadHost,\n): Promise<void> {\n const def = getDef();\n if (!def) {\n host.setStatus(\"먼저 애니메이션을 열거나 만드세요\", \"warn\");\n return;\n }\n try {\n host.setStatus(\"이미지 처리 중…\");\n const dataUrl = await readAsDataUrl(file);\n const cx = def.canvas.width / 2;\n const cy = def.canvas.height / 2;\n const tempImg = await loadImageSize(dataUrl);\n const maxDim = Math.min(def.canvas.width, def.canvas.height) * 0.5;\n let w = tempImg?.w ?? 200;\n let h = tempImg?.h ?? 200;\n if (w > maxDim || h > maxDim) {\n const s = maxDim / Math.max(w, h);\n w = Math.round(w * s);\n h = Math.round(h * s);\n }\n const id = uniqueElementId(\"img\");\n addElement({\n type: \"image\",\n id,\n rotation: 0,\n appearances: [],\n tracks: [],\n x: Math.round(cx - w / 2),\n y: Math.round(cy - h / 2),\n width: w,\n height: h,\n assetId: registerDataUriAsset(dataUrl),\n preserveAspectRatio: \"xMidYMid meet\",\n opacity: 1,\n });\n host.setStatus(`이미지 삽입 완료 (${file.name})`, \"ok\");\n } catch (err) {\n host.setStatus(\n \"이미지 삽입 실패: \" + (err instanceof Error ? err.message : String(err)),\n \"error\",\n );\n }\n}\n\nexport function setupImageDropAndPaste(host: ImageUploadHost): void {\n const canvasWrap = host.app.querySelector<HTMLElement>(\".studio-canvas-wrap\");\n if (canvasWrap) {\n canvasWrap.addEventListener(\"dragover\", (e) => {\n if (!e.dataTransfer) return;\n const hasFiles = Array.from(e.dataTransfer.items ?? []).some(\n (it) => it.kind === \"file\",\n );\n if (hasFiles) {\n e.preventDefault();\n e.dataTransfer.dropEffect = \"copy\";\n canvasWrap.classList.add(\"is-drop-target\");\n }\n });\n canvasWrap.addEventListener(\"dragleave\", () =>\n canvasWrap.classList.remove(\"is-drop-target\"),\n );\n canvasWrap.addEventListener(\"drop\", (e) => {\n canvasWrap.classList.remove(\"is-drop-target\");\n const file = e.dataTransfer?.files?.[0];\n if (file && file.type.startsWith(\"image/\")) {\n e.preventDefault();\n void uploadAndInsertImage(file, host);\n }\n });\n }\n document.addEventListener(\"paste\", (e) => {\n if (\n document.activeElement instanceof HTMLInputElement ||\n document.activeElement instanceof HTMLTextAreaElement\n ) {\n return;\n }\n const items = e.clipboardData?.items;\n if (!items) return;\n for (const item of Array.from(items)) {\n if (item.kind === \"file\" && item.type.startsWith(\"image/\")) {\n const file = item.getAsFile();\n if (file) {\n e.preventDefault();\n void uploadAndInsertImage(file, host);\n return;\n }\n }\n }\n });\n}\n","export interface StudioUi {\n app: HTMLElement;\n titleInput: HTMLInputElement;\n idDisplay: HTMLElement;\n status: HTMLElement;\n saveBtn: HTMLButtonElement;\n deleteBtn: HTMLButtonElement;\n newBtn: HTMLButtonElement;\n openBtn: HTMLButtonElement;\n playBtn: HTMLButtonElement;\n restartBtn: HTMLButtonElement;\n speedInput: HTMLInputElement;\n speedValue: HTMLElement;\n canvas: SVGSVGElement;\n elementList: HTMLElement;\n toolsRoot: HTMLElement;\n propsRoot: HTMLElement;\n timelineTracks: HTMLElement;\n elementTracks: HTMLElement;\n addStepBtn: HTMLButtonElement;\n libraryDialog: HTMLDialogElement;\n libraryList: HTMLElement;\n newDialog: HTMLDialogElement;\n newIdInput: HTMLInputElement;\n newTitleInput: HTMLInputElement;\n newCreateBtn: HTMLButtonElement;\n newError: HTMLElement;\n canvasWidthInput: HTMLInputElement;\n canvasHeightInput: HTMLInputElement;\n imageUploadBtn: HTMLButtonElement;\n imageFileInput: HTMLInputElement;\n helpBtn: HTMLButtonElement;\n helpDialog: HTMLDialogElement;\n undoBtn: HTMLButtonElement;\n redoBtn: HTMLButtonElement;\n gridToggleBtn: HTMLButtonElement;\n}\n\nexport function setStatus(\n ui: StudioUi,\n text: string,\n kind: \"ok\" | \"warn\" | \"error\" = \"ok\",\n): void {\n ui.status.textContent = text;\n ui.status.style.color =\n kind === \"error\"\n ? \"#ef4444\"\n : kind === \"warn\"\n ? \"#f59e0b\"\n : \"var(--color-fg-muted)\";\n}\n","import { animationDocumentSchema } from \"@kokoa/clotho\";\nimport {\n getDef,\n isDraft,\n markClean,\n promoteDraftToSaved,\n setDef,\n setDraft,\n updateMeta,\n} from \"./state\";\nimport * as api from \"./api\";\nimport { setStatus, type StudioUi } from \"./studio-ui\";\n\nfunction escapeHtml(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\");\n}\n\nexport function startDraft(): void {\n const stamp = new Date()\n .toISOString()\n .replace(/[-:.TZ]/g, \"\")\n .slice(0, 14);\n const id = `draft-${stamp}`;\n const def = animationDocumentSchema.parse({ id, title: \"\", description: \"\" });\n setDraft(def);\n}\n\nexport async function openLibrary(ui: StudioUi): Promise<void> {\n ui.libraryList.innerHTML = '<li class=\"studio-library-empty\">로딩…</li>';\n if (typeof ui.libraryDialog.showModal === \"function\")\n ui.libraryDialog.showModal();\n else ui.libraryDialog.setAttribute(\"open\", \"\");\n try {\n const items = await api.listAnimations();\n if (items.length === 0) {\n ui.libraryList.innerHTML =\n '<li class=\"studio-library-empty\">저장된 애니메이션이 없습니다.</li>';\n return;\n }\n ui.libraryList.innerHTML = items\n .map(\n (it) => `\n <li class=\"studio-library-item\">\n <div style=\"flex:1\">\n <div style=\"font-weight: 600\">${escapeHtml(it.title)}</div>\n <div style=\"font-family: var(--font-mono); font-size: 0.7rem; color: var(--color-fg-muted)\">${escapeHtml(it.id)}</div>\n ${it.description ? `<div style=\"font-size: 0.75rem; color: var(--color-fg-muted)\">${escapeHtml(it.description)}</div>` : \"\"}\n </div>\n <div style=\"display:flex;gap:0.3rem\">\n <button type=\"button\" class=\"studio-btn\" data-load-id=\"${escapeHtml(it.id)}\">📂 열기</button>\n <button type=\"button\" class=\"studio-btn\" data-dup-id=\"${escapeHtml(it.id)}\" data-dup-title=\"${escapeHtml(it.title)}\">🔀 복제</button>\n </div>\n </li>\n `,\n )\n .join(\"\");\n const onClick = async (e: Event) => {\n const target = e.target as HTMLElement;\n const loadBtn = target.closest<HTMLElement>(\"[data-load-id]\");\n if (loadBtn) {\n const id = loadBtn.dataset.loadId ?? \"\";\n await loadAnimation(ui, id);\n ui.libraryDialog.close();\n ui.libraryList.removeEventListener(\"click\", onClick);\n return;\n }\n const dupBtn = target.closest<HTMLElement>(\"[data-dup-id]\");\n if (dupBtn) {\n const sourceId = dupBtn.dataset.dupId ?? \"\";\n const sourceTitle = dupBtn.dataset.dupTitle ?? \"\";\n ui.libraryDialog.close();\n ui.libraryList.removeEventListener(\"click\", onClick);\n openDuplicateDialog(ui, sourceId, sourceTitle);\n }\n };\n ui.libraryList.addEventListener(\"click\", onClick);\n } catch (err) {\n ui.libraryList.innerHTML = `<li class=\"studio-library-empty\">에러: ${escapeHtml(err instanceof Error ? err.message : String(err))}</li>`;\n }\n}\n\nexport async function loadAnimation(ui: StudioUi, id: string): Promise<void> {\n try {\n setStatus(ui, \"로딩…\");\n const def = await api.loadAnimation(id);\n setDef(def);\n markClean();\n setStatus(ui, `로드 완료: ${def.id}`, \"ok\");\n } catch (err) {\n setStatus(\n ui,\n \"로드 실패: \" + (err instanceof Error ? err.message : String(err)),\n \"error\",\n );\n }\n}\n\nfunction setNewDialogTitle(text: string): void {\n const titleEl = document.getElementById(\"studio-new-dialog-title\");\n if (titleEl) titleEl.textContent = text;\n}\n\nexport function openNewDialog(ui: StudioUi): void {\n ui.newIdInput.value = \"\";\n ui.newTitleInput.value = \"\";\n ui.newError.textContent = \"\";\n ui.newDialog.dataset.mode = \"create\";\n delete ui.newDialog.dataset.sourceId;\n setNewDialogTitle(\"새 애니메이션 만들기\");\n if (typeof ui.newDialog.showModal === \"function\") ui.newDialog.showModal();\n else ui.newDialog.setAttribute(\"open\", \"\");\n}\n\nexport function openDuplicateDialog(\n ui: StudioUi,\n sourceId: string,\n sourceTitle: string,\n): void {\n ui.newIdInput.value = `${sourceId}-copy`;\n ui.newTitleInput.value = `${sourceTitle} (사본)`;\n ui.newError.textContent = \"\";\n ui.newDialog.dataset.mode = \"duplicate\";\n ui.newDialog.dataset.sourceId = sourceId;\n setNewDialogTitle(`\"${sourceId}\" 복제`);\n if (typeof ui.newDialog.showModal === \"function\") ui.newDialog.showModal();\n else ui.newDialog.setAttribute(\"open\", \"\");\n}\n\nexport async function createNew(ui: StudioUi): Promise<void> {\n const id = ui.newIdInput.value.trim();\n const title = ui.newTitleInput.value.trim() || id;\n if (!/^[a-z0-9][a-z0-9_-]*$/.test(id)) {\n ui.newError.textContent = \"ID 는 영문 소문자 / 숫자 / - / _ 만 가능\";\n return;\n }\n const mode = ui.newDialog.dataset.mode ?? \"create\";\n if (mode === \"draft-save\") {\n await saveDraftWithId(ui, id, title);\n return;\n }\n if (mode === \"duplicate\") {\n const sourceId = ui.newDialog.dataset.sourceId ?? \"\";\n try {\n const def = await api.duplicateAnimation(sourceId, id, title);\n setDef(def);\n markClean();\n ui.newDialog.close();\n delete ui.newDialog.dataset.sourceId;\n setStatus(ui, `복제 완료: ${def.id}`, \"ok\");\n } catch (err) {\n ui.newError.textContent =\n err instanceof Error ? err.message : String(err);\n }\n return;\n }\n try {\n const def = await api.createAnimation(id, title);\n setDef(def);\n markClean();\n ui.newDialog.close();\n setStatus(ui, `새 애니메이션: ${id}`, \"ok\");\n } catch (err) {\n ui.newError.textContent = err instanceof Error ? err.message : String(err);\n }\n}\n\nasync function saveDraftWithId(\n ui: StudioUi,\n id: string,\n title: string,\n): Promise<void> {\n const current = getDef();\n if (!current) return;\n try {\n const draftSnapshot = { ...current, id, title: title || id };\n await api.createAnimation(id, title || id);\n const saved = await api.saveAnimation(draftSnapshot);\n setDef(saved);\n promoteDraftToSaved();\n markClean();\n ui.newDialog.removeAttribute(\"data-mode\");\n ui.newDialog.close();\n setStatus(ui, `Draft 저장 완료: ${id}`, \"ok\");\n } catch (err) {\n ui.newError.textContent =\n \"저장 실패: \" + (err instanceof Error ? err.message : String(err));\n }\n}\n\nexport async function saveCurrent(ui: StudioUi): Promise<void> {\n const def = getDef();\n if (!def) return;\n if (isDraft()) {\n promptDraftSave(ui);\n return;\n }\n if (!def.title || def.title.trim().length === 0) {\n updateMeta({ title: def.id });\n setStatus(ui, `제목이 비어 있어 ID(${def.id})를 사용합니다`, \"warn\");\n }\n const current = getDef();\n if (!current) return;\n try {\n setStatus(ui, \"저장 중…\");\n const saved = await api.saveAnimation(current);\n setDef(saved);\n markClean();\n setStatus(ui, `저장됨 (${new Date().toLocaleTimeString(\"ko-KR\")})`, \"ok\");\n } catch (err) {\n setStatus(\n ui,\n \"저장 실패: \" + (err instanceof Error ? err.message : String(err)),\n \"error\",\n );\n }\n}\n\nfunction promptDraftSave(ui: StudioUi): void {\n ui.newIdInput.value = \"\";\n ui.newTitleInput.value = \"\";\n ui.newError.textContent =\n \"먼저 ID와 제목을 정해주세요 (현재 작업은 보존됩니다)\";\n ui.newDialog.dataset.mode = \"draft-save\";\n if (typeof ui.newDialog.showModal === \"function\") ui.newDialog.showModal();\n else ui.newDialog.setAttribute(\"open\", \"\");\n}\n\nexport async function deleteCurrent(ui: StudioUi): Promise<void> {\n const def = getDef();\n if (!def) return;\n if (!confirm(`\"${def.id}\" 을(를) 삭제하시겠습니까? 되돌릴 수 없습니다.`))\n return;\n try {\n await api.deleteAnimation(def.id);\n setDef(null);\n setStatus(ui, \"삭제됨\", \"ok\");\n } catch (err) {\n setStatus(\n ui,\n \"삭제 실패: \" + (err instanceof Error ? err.message : String(err)),\n \"error\",\n );\n }\n}\n","import { getDef, setSelection } from \"./state\";\nimport { friendlyElementLabel } from \"./element-list\";\n\nexport interface PaletteCommand {\n id: string;\n label: string;\n hint?: string;\n run: () => void;\n}\n\ntype Entry =\n | { kind: \"element\"; id: string; label: string; type: string; rawId: string }\n | {\n kind: \"command\";\n id: string;\n label: string;\n hint?: string;\n run: () => void;\n };\n\nlet dialogEl: HTMLDialogElement | null = null;\nlet inputEl: HTMLInputElement | null = null;\nlet listEl: HTMLUListElement | null = null;\nlet commands: PaletteCommand[] = [];\nlet currentEntries: Entry[] = [];\nlet activeIndex = 0;\nfunction escapeHtml(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\");\n}\n\nexport function registerCommands(cmds: PaletteCommand[]): void {\n commands = cmds;\n}\n\nexport function initPalette(): void {\n dialogEl = document.getElementById(\n \"studio-palette-dialog\",\n ) as HTMLDialogElement | null;\n inputEl = document.getElementById(\n \"studio-palette-input\",\n ) as HTMLInputElement | null;\n listEl = document.getElementById(\n \"studio-palette-list\",\n ) as HTMLUListElement | null;\n if (!dialogEl || !inputEl || !listEl) return;\n inputEl.addEventListener(\"input\", renderList);\n inputEl.addEventListener(\"keydown\", onKeydown);\n listEl.addEventListener(\"click\", onListClick);\n dialogEl.addEventListener(\"close\", () => {\n if (inputEl) inputEl.value = \"\";\n activeIndex = 0;\n });\n}\n\nexport function openPalette(): void {\n if (!dialogEl) return;\n if (typeof dialogEl.showModal === \"function\") dialogEl.showModal();\n else dialogEl.setAttribute(\"open\", \"\");\n activeIndex = 0;\n if (inputEl) {\n inputEl.value = \"\";\n setTimeout(() => inputEl?.focus(), 0);\n }\n renderList();\n}\n\nfunction gatherEntries(query: string): Entry[] {\n const q = query.trim().toLowerCase();\n const entries: Entry[] = [];\n for (const c of commands) {\n entries.push({\n kind: \"command\",\n id: c.id,\n label: c.label,\n hint: c.hint,\n run: c.run,\n });\n }\n const def = getDef();\n if (def) {\n for (const el of def.elements) {\n entries.push({\n kind: \"element\",\n id: `el-${el.id}`,\n label: friendlyElementLabel(el),\n type: el.type,\n rawId: el.id,\n });\n }\n }\n if (!q) return entries;\n return entries.filter((e) => {\n const hay =\n e.kind === \"element\"\n ? `${e.label} ${e.type} ${e.rawId}`.toLowerCase()\n : `${e.label} ${e.hint ?? \"\"}`.toLowerCase();\n return hay.includes(q);\n });\n}\n\nfunction renderList(): void {\n if (!listEl || !inputEl) return;\n currentEntries = gatherEntries(inputEl.value);\n if (activeIndex >= currentEntries.length)\n activeIndex = Math.max(0, currentEntries.length - 1);\n if (currentEntries.length === 0) {\n listEl.innerHTML = '<li class=\"studio-palette-empty\">결과 없음</li>';\n return;\n }\n listEl.innerHTML = currentEntries\n .map((e, i) => {\n const isActive = i === activeIndex;\n if (e.kind === \"command\") {\n return `<li class=\"studio-palette-item ${isActive ? \"is-active\" : \"\"}\" data-idx=\"${i}\">\n <span class=\"studio-palette-icon\">⚡</span>\n <span class=\"studio-palette-label\">${escapeHtml(e.label)}</span>\n ${e.hint ? `<span class=\"studio-palette-hint\">${escapeHtml(e.hint)}</span>` : \"\"}\n </li>`;\n }\n return `<li class=\"studio-palette-item ${isActive ? \"is-active\" : \"\"}\" data-idx=\"${i}\">\n <span class=\"studio-palette-icon\">📐</span>\n <span class=\"studio-palette-label\">${escapeHtml(e.label)}</span>\n <span class=\"studio-palette-hint\">${escapeHtml(e.type)} · ${escapeHtml(e.rawId)}</span>\n </li>`;\n })\n .join(\"\");\n}\n\nfunction activate(entry: Entry): void {\n if (entry.kind === \"command\") {\n entry.run();\n } else {\n setSelection({ kind: \"element\", elementId: entry.rawId });\n }\n dialogEl?.close();\n}\n\nfunction onKeydown(e: KeyboardEvent): void {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n activeIndex = Math.min(activeIndex + 1, currentEntries.length - 1);\n renderList();\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n activeIndex = Math.max(activeIndex - 1, 0);\n renderList();\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n const entry = currentEntries[activeIndex];\n if (entry) activate(entry);\n }\n}\n\nfunction onListClick(e: Event): void {\n const item = (e.target as HTMLElement).closest<HTMLElement>(\"[data-idx]\");\n if (!item) return;\n const idx = Number(item.dataset.idx);\n const entry = currentEntries[idx];\n if (entry) activate(entry);\n}\n","import {\n getHistory,\n jumpBack,\n jumpForward,\n subscribe,\n type HistoryEntry,\n type HistoryKind,\n} from \"./state\";\n\nconst KIND_ICON: Record<HistoryKind, string> = {\n meta: \"✎\",\n canvas: \"⬚\",\n settings: \"⚙\",\n add: \"+\",\n delete: \"🗑\",\n move: \"↔\",\n style: \"🎨\",\n rotate: \"↻\",\n resize: \"⤡\",\n reorder: \"⇅\",\n track: \"⌒\",\n appearance: \"◐\",\n chapter: \"📍\",\n effect: \"✨\",\n asset: \"\\u{1F5BC}\",\n group: \"⬚\",\n other: \"·\",\n};\n\nlet dialogEl: HTMLDialogElement | null = null;\nlet listEl: HTMLUListElement | null = null;\n\nfunction escapeHtml(s: string): string {\n return s\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\");\n}\n\nfunction formatTimeAgo(ts: number): string {\n const secs = Math.round((Date.now() - ts) / 1000);\n if (secs < 5) return \"방금\";\n if (secs < 60) return `${secs}초 전`;\n const mins = Math.round(secs / 60);\n if (mins < 60) return `${mins}분 전`;\n const hours = Math.round(mins / 60);\n return `${hours}시간 전`;\n}\n\nexport function initHistoryPanel(): void {\n dialogEl = document.getElementById(\n \"studio-history-dialog\",\n ) as HTMLDialogElement | null;\n listEl = document.getElementById(\n \"studio-history-list\",\n ) as HTMLUListElement | null;\n if (!dialogEl || !listEl) return;\n listEl.addEventListener(\"click\", onListClick);\n subscribe(() => {\n if (dialogEl?.open) renderList();\n });\n}\n\nexport function openHistoryPanel(): void {\n if (!dialogEl) return;\n renderList();\n if (typeof dialogEl.showModal === \"function\") dialogEl.showModal();\n else dialogEl.setAttribute(\"open\", \"\");\n}\n\nfunction renderList(): void {\n if (!listEl) return;\n const { past, future } = getHistory();\n if (past.length === 0 && future.length === 0) {\n listEl.innerHTML =\n '<li class=\"studio-history-empty\">아직 이력이 없습니다</li>';\n return;\n }\n const pastReversed = [...past].slice().reverse();\n const items: string[] = [];\n for (let i = 0; i < future.length; i += 1) {\n const entry = future[future.length - 1 - i];\n items.push(renderEntry(entry, \"future\", i + 1));\n }\n items.push('<li class=\"studio-history-current\">현재 위치</li>');\n for (let i = 0; i < pastReversed.length; i += 1) {\n const entry = pastReversed[i];\n items.push(renderEntry(entry, \"past\", i + 1));\n }\n listEl.innerHTML = items.join(\"\");\n}\n\nfunction renderEntry(\n entry: HistoryEntry,\n side: \"past\" | \"future\",\n stepCount: number,\n): string {\n const icon = KIND_ICON[entry.kind] ?? \"·\";\n return `<li class=\"studio-history-item studio-history-item-${side}\" data-side=\"${side}\" data-steps=\"${stepCount}\">\n <span class=\"studio-history-icon\" aria-hidden=\"true\">${icon}</span>\n <span class=\"studio-history-label\">${escapeHtml(entry.label)}</span>\n <span class=\"studio-history-time\">${escapeHtml(formatTimeAgo(entry.timestamp))}</span>\n </li>`;\n}\n\nfunction onListClick(e: Event): void {\n const item = (e.target as HTMLElement).closest<HTMLElement>(\"[data-side]\");\n if (!item) return;\n const side = item.dataset.side as \"past\" | \"future\";\n const steps = Number(item.dataset.steps);\n if (!Number.isFinite(steps) || steps <= 0) return;\n if (side === \"past\") jumpBack(steps);\n else jumpForward(steps);\n if (dialogEl?.open) renderList();\n}\n","import type { StudioUi } from \"../studio-ui\";\n\nexport function queryUi(): StudioUi | null {\n const app = document.getElementById(\"studio-app\");\n if (!app) return null;\n const $ = <T extends HTMLElement>(id: string): T | null =>\n document.getElementById(id) as T | null;\n\n const titleInput = $<HTMLInputElement>(\"studio-title\");\n const idDisplay = $<HTMLElement>(\"studio-id-display\");\n const status = $<HTMLElement>(\"studio-status\");\n const saveBtn = $<HTMLButtonElement>(\"studio-save\");\n const deleteBtn = $<HTMLButtonElement>(\"studio-delete\");\n const newBtn = $<HTMLButtonElement>(\"studio-new\");\n const openBtn = $<HTMLButtonElement>(\"studio-open\");\n const playBtn = $<HTMLButtonElement>(\"studio-play\");\n const restartBtn = $<HTMLButtonElement>(\"studio-restart\");\n const speedInput = $<HTMLInputElement>(\"studio-speed\");\n const speedValue = $<HTMLElement>(\"studio-speed-value\");\n const canvas = document.getElementById(\n \"studio-canvas\",\n ) as SVGSVGElement | null;\n const elementList = $<HTMLElement>(\"studio-element-list\");\n const toolsRoot = app.querySelector<HTMLElement>(\".studio-tools\");\n const propsRoot = $<HTMLElement>(\"studio-props-content\");\n const timelineTracks = $<HTMLElement>(\"studio-timeline-tracks\");\n const elementTracks = $<HTMLElement>(\"studio-element-tracks\");\n const addStepBtn = $<HTMLButtonElement>(\"studio-add-step\");\n const libraryDialog = $<HTMLDialogElement>(\"studio-library-dialog\");\n const libraryList = $<HTMLElement>(\"studio-library-list\");\n const newDialog = $<HTMLDialogElement>(\"studio-new-dialog\");\n const newIdInput = $<HTMLInputElement>(\"studio-new-id\");\n const newTitleInput = $<HTMLInputElement>(\"studio-new-title\");\n const newCreateBtn = $<HTMLButtonElement>(\"studio-new-create\");\n const newError = $<HTMLElement>(\"studio-new-error\");\n const canvasWidthInput = $<HTMLInputElement>(\"studio-canvas-width\");\n const canvasHeightInput = $<HTMLInputElement>(\"studio-canvas-height\");\n const imageUploadBtn = $<HTMLButtonElement>(\"studio-image-upload\");\n const imageFileInput = $<HTMLInputElement>(\"studio-image-file\");\n const helpBtn = $<HTMLButtonElement>(\"studio-help\");\n const helpDialog = $<HTMLDialogElement>(\"studio-help-dialog\");\n const undoBtn = $<HTMLButtonElement>(\"studio-undo\");\n const redoBtn = $<HTMLButtonElement>(\"studio-redo\");\n const gridToggleBtn = $<HTMLButtonElement>(\"studio-grid-toggle\");\n\n if (\n !titleInput ||\n !idDisplay ||\n !status ||\n !saveBtn ||\n !deleteBtn ||\n !newBtn ||\n !openBtn ||\n !playBtn ||\n !restartBtn ||\n !speedInput ||\n !speedValue ||\n !canvas ||\n !elementList ||\n !toolsRoot ||\n !propsRoot ||\n !timelineTracks ||\n !elementTracks ||\n !addStepBtn ||\n !libraryDialog ||\n !libraryList ||\n !newDialog ||\n !newIdInput ||\n !newTitleInput ||\n !newCreateBtn ||\n !newError ||\n !canvasWidthInput ||\n !canvasHeightInput ||\n !imageUploadBtn ||\n !imageFileInput ||\n !helpBtn ||\n !helpDialog ||\n !undoBtn ||\n !redoBtn ||\n !gridToggleBtn\n ) {\n return null;\n }\n\n return {\n app,\n titleInput,\n idDisplay,\n status,\n saveBtn,\n deleteBtn,\n newBtn,\n openBtn,\n playBtn,\n restartBtn,\n speedInput,\n speedValue,\n canvas,\n elementList,\n toolsRoot,\n propsRoot,\n timelineTracks,\n elementTracks,\n addStepBtn,\n libraryDialog,\n libraryList,\n newDialog,\n newIdInput,\n newTitleInput,\n newCreateBtn,\n newError,\n canvasWidthInput,\n canvasHeightInput,\n imageUploadBtn,\n imageFileInput,\n helpBtn,\n helpDialog,\n undoBtn,\n redoBtn,\n gridToggleBtn,\n };\n}\n","import { updateElementBase } from \"../state\";\n\ninterface InlineTextTarget {\n id: string;\n x: number;\n y: number;\n content: string;\n fontSize?: number;\n fontWeight?: string | number;\n color?: string;\n}\n\nexport function startInlineTextEdit(\n canvas: SVGSVGElement,\n el: InlineTextTarget,\n): void {\n canvas\n .querySelectorAll(\"[data-inline-text-editor]\")\n .forEach((n) => n.remove());\n const fontSize = el.fontSize ?? 16;\n const fo = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"foreignObject\",\n );\n fo.setAttribute(\"data-inline-text-editor\", \"\");\n fo.setAttribute(\"x\", String(el.x - 8));\n fo.setAttribute(\"y\", String(el.y - fontSize));\n const width = Math.max(160, (el.content?.length ?? 5) * fontSize * 0.7);\n fo.setAttribute(\"width\", String(width));\n fo.setAttribute(\"height\", String(fontSize * 1.6));\n const input = document.createElement(\"input\");\n input.type = \"text\";\n input.value = el.content ?? \"\";\n Object.assign(input.style, {\n width: \"100%\",\n height: \"100%\",\n boxSizing: \"border-box\",\n border: \"2px solid #6366f1\",\n borderRadius: \"4px\",\n background: \"rgba(255, 255, 255, 0.96)\",\n padding: \"0 6px\",\n font: `${el.fontWeight ?? 400} ${fontSize}px ui-sans-serif,system-ui,sans-serif`,\n color: el.color ?? \"#0f172a\",\n outline: \"none\",\n boxShadow: \"0 0 0 3px rgba(99, 102, 241, 0.2)\",\n });\n fo.appendChild(input);\n canvas.appendChild(fo);\n requestAnimationFrame(() => {\n input.focus();\n input.select();\n });\n let settled = false;\n const commit = (): void => {\n if (settled) return;\n settled = true;\n const newContent = input.value;\n fo.remove();\n if (newContent !== el.content) {\n updateElementBase(el.id, { content: newContent });\n }\n };\n const cancel = (): void => {\n if (settled) return;\n settled = true;\n fo.remove();\n };\n let isComposingFallback = false;\n input.addEventListener(\"compositionstart\", () => {\n isComposingFallback = true;\n });\n input.addEventListener(\"compositionend\", () => {\n isComposingFallback = false;\n });\n input.addEventListener(\"blur\", commit);\n input.addEventListener(\"keydown\", (e) => {\n if (e.isComposing || isComposingFallback) return;\n if (e.key === \"Enter\") {\n e.preventDefault();\n commit();\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n cancel();\n }\n });\n}\n","import type { StudioUi } from \"../studio-ui\";\nimport { getGridSize, isGridEnabled } from \"../grid\";\n\nexport function reflectGridUi(ui: StudioUi): void {\n const on = isGridEnabled();\n const size = getGridSize();\n ui.gridToggleBtn.setAttribute(\"aria-pressed\", on ? \"true\" : \"false\");\n ui.gridToggleBtn.classList.toggle(\"is-active\", on);\n ui.gridToggleBtn.title = on\n ? `격자 켬 (${size}px), G 로 끔`\n : \"격자 켜기 (G)\";\n document.body.classList.toggle(\"studio-grid-on\", on);\n ui.app.style.setProperty(\"--studio-grid-size\", `${size}px`);\n const label = document.getElementById(\"studio-grid-label\");\n if (label) label.textContent = on ? `격자 ${size}px` : \"격자 끔\";\n}\n\nexport function setupTimelineResizer(ui: StudioUi): void {\n const resizer = document.getElementById(\"studio-timeline-resizer\");\n if (!resizer) return;\n const STORAGE_KEY = \"studio.timelineHeight\";\n const saved = Number(localStorage.getItem(STORAGE_KEY));\n if (Number.isFinite(saved) && saved > 100) {\n ui.app.style.setProperty(\"--studio-timeline-h\", `${saved}px`);\n }\n let dragging = false;\n let startY = 0;\n let startH = 320;\n resizer.addEventListener(\"mousedown\", (e) => {\n e.preventDefault();\n dragging = true;\n startY = e.clientY;\n const cs = getComputedStyle(ui.app)\n .getPropertyValue(\"--studio-timeline-h\")\n .trim();\n startH = parseFloat(cs) || 320;\n resizer.classList.add(\"is-dragging\");\n document.body.style.cursor = \"ns-resize\";\n document.body.style.userSelect = \"none\";\n });\n document.addEventListener(\"mousemove\", (e) => {\n if (!dragging) return;\n const dy = startY - e.clientY;\n const h = Math.max(120, Math.min(window.innerHeight * 0.8, startH + dy));\n ui.app.style.setProperty(\"--studio-timeline-h\", `${h}px`);\n });\n document.addEventListener(\"mouseup\", () => {\n if (!dragging) return;\n dragging = false;\n resizer.classList.remove(\"is-dragging\");\n document.body.style.cursor = \"\";\n document.body.style.userSelect = \"\";\n const cs = getComputedStyle(ui.app)\n .getPropertyValue(\"--studio-timeline-h\")\n .trim();\n const h = parseFloat(cs);\n if (Number.isFinite(h) && h > 0) {\n localStorage.setItem(STORAGE_KEY, String(h));\n }\n });\n resizer.addEventListener(\"keydown\", (e) => {\n if (e.key !== \"ArrowUp\" && e.key !== \"ArrowDown\") return;\n e.preventDefault();\n const cs = getComputedStyle(ui.app)\n .getPropertyValue(\"--studio-timeline-h\")\n .trim();\n const current = parseFloat(cs) || 320;\n const step = e.shiftKey ? 40 : 10;\n const delta = e.key === \"ArrowUp\" ? step : -step;\n const h = Math.max(\n 120,\n Math.min(window.innerHeight * 0.8, current + delta),\n );\n ui.app.style.setProperty(\"--studio-timeline-h\", `${h}px`);\n localStorage.setItem(STORAGE_KEY, String(h));\n });\n}\n\nexport function setupCanvasPan(ui: StudioUi): void {\n const wrap = ui.app.querySelector<HTMLElement>(\".studio-canvas-wrap\");\n if (!wrap) return;\n let spaceHeld = false;\n let panState: {\n startX: number;\n startY: number;\n startScrollL: number;\n startScrollT: number;\n } | null = null;\n\n const isInputTarget = (t: EventTarget | null): boolean =>\n t instanceof HTMLInputElement ||\n t instanceof HTMLTextAreaElement ||\n (t instanceof HTMLElement && t.isContentEditable);\n\n document.addEventListener(\"keydown\", (e) => {\n if (e.code !== \"Space\") return;\n if (isInputTarget(e.target)) return;\n if (e.repeat) return;\n spaceHeld = true;\n document.body.classList.add(\"studio-pan-mode\");\n e.preventDefault();\n });\n document.addEventListener(\"keyup\", (e) => {\n if (e.code !== \"Space\") return;\n spaceHeld = false;\n document.body.classList.remove(\"studio-pan-mode\");\n });\n\n wrap.addEventListener(\n \"mousedown\",\n (e) => {\n if (!spaceHeld) return;\n e.preventDefault();\n e.stopPropagation();\n panState = {\n startX: e.clientX,\n startY: e.clientY,\n startScrollL: wrap.scrollLeft,\n startScrollT: wrap.scrollTop,\n };\n document.body.classList.add(\"studio-panning\");\n },\n { capture: true },\n );\n\n document.addEventListener(\"mousemove\", (e) => {\n if (!panState) return;\n e.preventDefault();\n wrap.scrollLeft = panState.startScrollL - (e.clientX - panState.startX);\n wrap.scrollTop = panState.startScrollT - (e.clientY - panState.startY);\n });\n document.addEventListener(\"mouseup\", () => {\n if (!panState) return;\n panState = null;\n document.body.classList.remove(\"studio-panning\");\n });\n}\n","import type { StudioUi } from \"../studio-ui\";\nimport { getDef } from \"../state\";\nimport { hidePreview, showPreview } from \"../canvas\";\n\nlet playState: \"idle\" | \"playing\" = \"idle\";\n\nexport function isPlaying(): boolean {\n return playState === \"playing\";\n}\n\nexport function togglePlay(ui: StudioUi): void {\n const def = getDef();\n if (!def) return;\n if (playState === \"playing\") {\n stopPreview(ui);\n } else {\n showPreview(def);\n playState = \"playing\";\n ui.playBtn.textContent = \"⏹ Stop\";\n }\n}\n\nexport function stopPreview(ui: StudioUi): void {\n hidePreview();\n playState = \"idle\";\n ui.playBtn.textContent = \"▶ Play\";\n}\n","import type { AnimationElement } from \"@kokoa/clotho\";\nimport {\n addElement,\n getDef,\n getSelectedElementIds,\n getSelection,\n setSelection,\n uniqueElementId,\n updateElementBase,\n} from \"./state\";\nimport { isGroup, moveGroupBy } from \"./studio-groups\";\n\nlet clipboard: AnimationElement[] = [];\n\nfunction shiftCloneCoords(\n el: AnimationElement,\n dx: number,\n dy: number,\n): AnimationElement {\n const clone = JSON.parse(JSON.stringify(el)) as AnimationElement;\n if (\n clone.type === \"rect\" ||\n clone.type === \"image\" ||\n clone.type === \"text\"\n ) {\n clone.x += dx;\n clone.y += dy;\n } else if (clone.type === \"circle\") {\n clone.cx += dx;\n clone.cy += dy;\n } else if (clone.type === \"line\" || clone.type === \"arrow\") {\n if (typeof clone.x1 === \"number\") clone.x1 += dx;\n if (typeof clone.y1 === \"number\") clone.y1 += dy;\n if (typeof clone.x2 === \"number\") clone.x2 += dx;\n if (typeof clone.y2 === \"number\") clone.y2 += dy;\n } else if (clone.type === \"path\") {\n clone.x = (clone.x ?? 0) + dx;\n clone.y = (clone.y ?? 0) + dy;\n } else if (clone.type === \"polygon\") {\n const pts = clone.points\n .trim()\n .split(/\\s+/)\n .map((pair: string) => {\n const [x, y] = pair.split(\",\").map(Number);\n if (Number.isFinite(x) && Number.isFinite(y))\n return `${x + dx},${y + dy}`;\n return pair;\n });\n clone.points = pts.join(\" \");\n }\n return clone;\n}\n\nexport function copySelection(): boolean {\n const sel = getSelection();\n const ids = getSelectedElementIds(sel);\n if (ids.length === 0) return false;\n const def = getDef();\n if (!def) return false;\n const copies: AnimationElement[] = [];\n for (const id of ids) {\n const el = def.elements.find((e) => e.id === id);\n if (el) copies.push(JSON.parse(JSON.stringify(el)));\n }\n if (copies.length === 0) return false;\n clipboard = copies;\n return true;\n}\n\nexport function pasteFromClipboard(): boolean {\n if (clipboard.length === 0) return false;\n const newIds: string[] = [];\n for (const item of clipboard) {\n const newId = uniqueElementId(item.type);\n const shifted = shiftCloneCoords(item, 20, 20);\n shifted.id = newId;\n addElement(shifted);\n newIds.push(newId);\n }\n if (newIds.length === 1) {\n setSelection({ kind: \"element\", elementId: newIds[0] });\n } else if (newIds.length > 1) {\n setSelection({ kind: \"elements\", elementIds: newIds });\n }\n return true;\n}\n\nexport function duplicateSelection(): boolean {\n const sel = getSelection();\n const ids = getSelectedElementIds(sel);\n if (ids.length === 0) return false;\n const def = getDef();\n if (!def) return false;\n const newIds: string[] = [];\n for (const id of ids) {\n const el = def.elements.find((e) => e.id === id);\n if (!el) continue;\n const newId = uniqueElementId(el.type);\n const cloned = JSON.parse(JSON.stringify(el)) as AnimationElement;\n const shifted = shiftCloneCoords(cloned, 20, 20);\n shifted.id = newId;\n addElement(shifted);\n newIds.push(newId);\n }\n if (newIds.length === 1) {\n setSelection({ kind: \"element\", elementId: newIds[0] });\n } else if (newIds.length > 1) {\n setSelection({ kind: \"elements\", elementIds: newIds });\n }\n return newIds.length > 0;\n}\n\nfunction moveOneElement(el: AnimationElement, dx: number, dy: number): boolean {\n if (isGroup(el)) {\n moveGroupBy(el.id, dx, dy);\n return true;\n }\n const patch: Record<string, unknown> = {};\n if (el.type === \"rect\" || el.type === \"image\" || el.type === \"text\") {\n patch.x = el.x + dx;\n patch.y = el.y + dy;\n } else if (el.type === \"circle\") {\n patch.cx = el.cx + dx;\n patch.cy = el.cy + dy;\n } else if (el.type === \"line\" || el.type === \"arrow\") {\n if (typeof el.x1 === \"number\") patch.x1 = el.x1 + dx;\n if (typeof el.y1 === \"number\") patch.y1 = el.y1 + dy;\n if (typeof el.x2 === \"number\") patch.x2 = el.x2 + dx;\n if (typeof el.y2 === \"number\") patch.y2 = el.y2 + dy;\n } else if (el.type === \"path\") {\n patch.x = (el.x ?? 0) + dx;\n patch.y = (el.y ?? 0) + dy;\n } else if (el.type === \"polygon\") {\n const pts = el.points\n .trim()\n .split(/\\s+/)\n .map((pair) => {\n const [x, y] = pair.split(\",\").map(Number);\n if (Number.isFinite(x) && Number.isFinite(y))\n return `${x + dx},${y + dy}`;\n return pair;\n });\n patch.points = pts.join(\" \");\n } else {\n return false;\n }\n updateElementBase(el.id, patch);\n return true;\n}\n\nexport function moveSelectedElement(dx: number, dy: number): boolean {\n const sel = getSelection();\n const ids = getSelectedElementIds(sel);\n if (ids.length === 0) return false;\n const def = getDef();\n if (!def) return false;\n let moved = false;\n for (const id of ids) {\n const el = def.elements.find((e) => e.id === id);\n if (el && moveOneElement(el, dx, dy)) moved = true;\n }\n return moved;\n}\n","import { getDef, getSelection, setSelection } from \"../state\";\nimport type { AnimationDocument } from \"@kokoa/clotho\";\nimport { activeAppearance } from \"@kokoa/clotho\";\n\nexport function selectAdjacentElement(direction: 1 | -1): boolean {\n const def = getDef();\n if (!def || def.elements.length === 0) return false;\n const sel = getSelection();\n if (sel.kind !== \"element\") {\n const target =\n direction === 1 ? def.elements[0] : def.elements[def.elements.length - 1];\n setSelection({ kind: \"element\", elementId: target.id });\n return true;\n }\n const idx = def.elements.findIndex((e) => e.id === sel.elementId);\n if (idx < 0) return false;\n const nextIdx = (idx + direction + def.elements.length) % def.elements.length;\n setSelection({ kind: \"element\", elementId: def.elements[nextIdx].id });\n return true;\n}\n\nexport function getVisibleElementIds(\n def: AnimationDocument,\n time: number,\n): string[] {\n return def.elements\n .filter(\n (el) =>\n el.appearances.length === 0 || activeAppearance(el, time) !== null,\n )\n .map((el) => el.id);\n}\n\nexport function handleSelectAll(e: KeyboardEvent): void {\n const def = getDef();\n if (!def) return;\n const time = (function () {\n const sel = getSelection();\n if (sel.kind === \"chapter\") {\n const c = def.chapters.find((x) => x.id === sel.chapterId);\n if (c) return c.time;\n }\n return 0;\n })();\n const visibleIds =\n time > 0\n ? getVisibleElementIds(def, time)\n : def.elements.map((el) => el.id);\n if (visibleIds.length === 0) return;\n e.preventDefault();\n if (visibleIds.length === 1) {\n setSelection({ kind: \"element\", elementId: visibleIds[0] });\n } else {\n setSelection({ kind: \"elements\", elementIds: visibleIds });\n }\n}\n","import type { StudioUi } from \"../studio-ui\";\nimport {\n deleteChapter,\n deleteEffect,\n deleteElement,\n getDef,\n getSelection,\n getSelectedElementIds,\n moveElementToEnd,\n moveElementToFront,\n redo,\n reorderElement,\n setSelection,\n undo,\n updateChapter,\n} from \"../state\";\nimport {\n copySelection,\n duplicateSelection,\n moveSelectedElement,\n pasteFromClipboard,\n} from \"../studio-clipboard\";\nimport { isGridEnabled, setGridEnabled } from \"../grid\";\nimport { groupElements, isGroup, ungroupElement } from \"../studio-groups\";\nimport { openHistoryPanel } from \"../studio-history\";\nimport { openPalette } from \"../studio-palette\";\nimport { saveCurrent } from \"../studio-save-load\";\nimport { handleSelectAll, selectAdjacentElement } from \"./selection-nav\";\n\nexport function bindKeyboardShortcuts(ui: StudioUi): void {\n document.addEventListener(\"keydown\", (e) => {\n const inText =\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n (e.target instanceof HTMLElement && e.target.isContentEditable);\n const mod = e.metaKey || e.ctrlKey;\n\n if (e.key === \"Escape\") {\n const sel = getSelection();\n if (sel.kind !== \"none\") {\n setSelection({ kind: \"none\" });\n }\n return;\n }\n\n if (!inText && !mod && (e.key === \"?\" || (e.key === \"/\" && e.shiftKey))) {\n e.preventDefault();\n if (typeof ui.helpDialog.showModal === \"function\")\n ui.helpDialog.showModal();\n else ui.helpDialog.setAttribute(\"open\", \"\");\n return;\n }\n\n if (!inText && (e.key === \"Delete\" || e.key === \"Backspace\")) {\n const sel = getSelection();\n const ids = getSelectedElementIds(sel);\n if (ids.length > 0) {\n e.preventDefault();\n for (const id of ids) deleteElement(id);\n setSelection({ kind: \"none\" });\n } else if (sel.kind === \"chapter\") {\n e.preventDefault();\n deleteChapter(sel.chapterId);\n } else if (sel.kind === \"effect\") {\n e.preventDefault();\n deleteEffect(sel.effectId);\n }\n return;\n }\n\n if (\n !inText &&\n !mod &&\n (e.key === \"ArrowLeft\" ||\n e.key === \"ArrowRight\" ||\n e.key === \"ArrowUp\" ||\n e.key === \"ArrowDown\")\n ) {\n const sel = getSelection();\n if (\n sel.kind === \"chapter\" &&\n (e.key === \"ArrowLeft\" || e.key === \"ArrowRight\")\n ) {\n const def = getDef();\n const ch = def?.chapters.find((c) => c.id === sel.chapterId);\n if (ch) {\n const step = e.shiftKey ? 1000 : 100;\n const dt = e.key === \"ArrowLeft\" ? -step : step;\n updateChapter(sel.chapterId, { time: Math.max(0, ch.time + dt) });\n e.preventDefault();\n }\n return;\n }\n const step = e.shiftKey ? 10 : 1;\n const dx =\n e.key === \"ArrowLeft\" ? -step : e.key === \"ArrowRight\" ? step : 0;\n const dy = e.key === \"ArrowUp\" ? -step : e.key === \"ArrowDown\" ? step : 0;\n if (moveSelectedElement(dx, dy)) e.preventDefault();\n return;\n }\n\n if (!inText && !mod && e.key === \"Tab\") {\n const sel = getSelection();\n if (sel.kind === \"chapter\") {\n const def = getDef();\n if (def && def.chapters.length > 0) {\n const sorted = [...def.chapters].sort((a, b) => a.time - b.time);\n const idx = sorted.findIndex((c) => c.id === sel.chapterId);\n if (idx >= 0) {\n const dir = e.shiftKey ? -1 : 1;\n const nextIdx = (idx + dir + sorted.length) % sorted.length;\n setSelection({ kind: \"chapter\", chapterId: sorted[nextIdx].id });\n e.preventDefault();\n }\n }\n return;\n }\n if (selectAdjacentElement(e.shiftKey ? -1 : 1)) e.preventDefault();\n return;\n }\n\n if (!inText && !mod && (e.key === \"g\" || e.key === \"G\")) {\n e.preventDefault();\n setGridEnabled(!isGridEnabled());\n return;\n }\n\n if (!mod) return;\n const key = e.key.toLowerCase();\n if (key === \"a\" && !inText) {\n handleSelectAll(e);\n return;\n }\n if (key === \"k\") {\n e.preventDefault();\n openPalette();\n return;\n }\n if (key === \"h\" && e.shiftKey) {\n e.preventDefault();\n openHistoryPanel();\n return;\n }\n if (key === \"s\") {\n e.preventDefault();\n void saveCurrent(ui);\n return;\n }\n if (key === \"z\" && !inText) {\n e.preventDefault();\n if (e.shiftKey) redo();\n else undo();\n return;\n }\n if (key === \"y\" && !inText) {\n e.preventDefault();\n redo();\n return;\n }\n if ((key === \"c\" || key === \"x\") && !inText) {\n if (copySelection()) {\n e.preventDefault();\n if (key === \"x\") {\n const sel = getSelection();\n const ids = getSelectedElementIds(sel);\n for (const id of ids) deleteElement(id);\n if (ids.length > 0) setSelection({ kind: \"none\" });\n }\n }\n return;\n }\n if (key === \"v\" && !inText) {\n if (pasteFromClipboard()) {\n e.preventDefault();\n }\n return;\n }\n if (key === \"d\" && !inText) {\n if (duplicateSelection()) {\n e.preventDefault();\n }\n return;\n }\n if (key === \"g\" && !inText) {\n const sel = getSelection();\n if (e.shiftKey) {\n if (sel.kind === \"element\") {\n const def = getDef();\n const el = def?.elements.find((x) => x.id === sel.elementId);\n if (el && isGroup(el)) {\n ungroupElement(sel.elementId);\n e.preventDefault();\n }\n }\n } else if (sel.kind === \"elements\" && sel.elementIds.length >= 2) {\n const newId = groupElements(sel.elementIds);\n if (newId) e.preventDefault();\n }\n return;\n }\n if ((e.code === \"BracketRight\" || e.code === \"BracketLeft\") && !inText) {\n const sel = getSelection();\n const ids = getSelectedElementIds(sel);\n if (ids.length === 0) return;\n const def = getDef();\n if (!def) return;\n e.preventDefault();\n const forward = e.code === \"BracketRight\";\n for (const id of ids) {\n if (e.shiftKey) {\n if (forward) moveElementToEnd(id);\n else moveElementToFront(id);\n } else {\n const idx = def.elements.findIndex((x) => x.id === id);\n if (forward && idx < def.elements.length - 1) {\n reorderElement(id, def.elements[idx + 1].id, \"after\");\n } else if (!forward && idx > 0) {\n reorderElement(id, def.elements[idx - 1].id, \"before\");\n }\n }\n }\n }\n });\n}\n","import {\n canRedo,\n canUndo,\n getDef,\n getSelection,\n isDirty,\n isDraft,\n setDef,\n setSelection,\n subscribe,\n updateCanvas,\n updateMeta,\n undo,\n redo,\n} from \"./state\";\nimport { initCanvas } from \"./canvas\";\nimport { initElementList } from \"./element-list\";\nimport { initProperties } from \"./properties\";\nimport { initTimeline } from \"./timeline\";\nimport { IconLibraryDialog } from \"./icon-library\";\nimport { initGrid, isGridEnabled, setGridEnabled, subscribeGrid } from \"./grid\";\nimport {\n setupImageDropAndPaste,\n uploadAndInsertImage,\n type ImageUploadHost,\n} from \"./studio-image-upload\";\nimport { setStatus, type StudioUi } from \"./studio-ui\";\nimport {\n createNew,\n deleteCurrent,\n loadAnimation,\n openLibrary,\n openNewDialog,\n saveCurrent,\n startDraft,\n} from \"./studio-save-load\";\nimport { initPalette, registerCommands } from \"./studio-palette\";\nimport { initHistoryPanel, openHistoryPanel } from \"./studio-history\";\nimport { queryUi } from \"./main/ui-query\";\nimport { startInlineTextEdit } from \"./main/inline-edit\";\nimport {\n reflectGridUi,\n setupCanvasPan,\n setupTimelineResizer,\n} from \"./main/panes\";\nimport { isPlaying, stopPreview, togglePlay } from \"./main/playback\";\nimport { bindKeyboardShortcuts } from \"./main/keyboard-shortcuts\";\n\nexport { getVisibleElementIds } from \"./main/selection-nav\";\n\ndeclare global {\n interface Window {\n __studio__?: {\n setDef: typeof setDef;\n setSelection: typeof setSelection;\n getDef: typeof getDef;\n getSelection: typeof getSelection;\n };\n }\n}\n\nexport function initStudio(opts?: { initialId?: string }): void {\n const ui = queryUi();\n if (!ui) {\n console.error(\"[studio] missing required elements\");\n return;\n }\n if (false) {\n window.__studio__ = { setDef, setSelection, getDef, getSelection };\n }\n document.body.classList.add(\"editor-active\");\n document.documentElement.classList.add(\"editor-active\");\n\n initGrid();\n reflectGridUi(ui);\n subscribeGrid(() => reflectGridUi(ui));\n\n initCanvas(ui.canvas);\n initElementList(ui.elementList, ui.toolsRoot);\n initProperties(ui.propsRoot);\n initTimeline(ui.timelineTracks, ui.addStepBtn, ui.elementTracks);\n\n const iconDialog = IconLibraryDialog.mount();\n document\n .getElementById(\"studio-open-icons\")\n ?.addEventListener(\"click\", () => iconDialog?.open());\n\n ui.toolsRoot.addEventListener(\"click\", (e) => {\n const btn = (e.target as HTMLElement).closest<HTMLElement>(\n \"[data-canvas-preset]\",\n );\n if (!btn) return;\n const preset = btn.dataset.canvasPreset ?? \"\";\n const m = preset.match(/^(\\d+)x(\\d+)$/);\n if (!m) return;\n updateCanvas({ width: Number(m[1]), height: Number(m[2]) });\n });\n\n ui.canvasWidthInput.addEventListener(\"input\", () => {\n const w = Number(ui.canvasWidthInput.value);\n if (w >= 100 && w <= 8000) updateCanvas({ width: w });\n });\n ui.canvasHeightInput.addEventListener(\"input\", () => {\n const h = Number(ui.canvasHeightInput.value);\n if (h >= 100 && h <= 8000) updateCanvas({ height: h });\n });\n\n const imageHost: ImageUploadHost = {\n app: ui.app,\n setStatus: (text, kind) => setStatus(ui, text, kind),\n };\n ui.imageUploadBtn.addEventListener(\"click\", () => ui.imageFileInput.click());\n ui.imageFileInput.addEventListener(\"change\", () => {\n const file = ui.imageFileInput.files?.[0];\n if (file) void uploadAndInsertImage(file, imageHost);\n ui.imageFileInput.value = \"\";\n });\n\n const openHelp = (): void => {\n if (typeof ui.helpDialog.showModal === \"function\")\n ui.helpDialog.showModal();\n else ui.helpDialog.setAttribute(\"open\", \"\");\n };\n ui.helpBtn.addEventListener(\"click\", openHelp);\n document\n .getElementById(\"studio-floating-help\")\n ?.addEventListener(\"click\", openHelp);\n\n const HELP_HINT_KEY = \"studio.helpHintDismissed\";\n const helpHint = document.getElementById(\"studio-help-hint\");\n if (helpHint && !localStorage.getItem(HELP_HINT_KEY)) {\n helpHint.hidden = false;\n setTimeout(() => helpHint.classList.add(\"is-visible\"), 200);\n const dismiss = (): void => {\n helpHint.classList.remove(\"is-visible\");\n setTimeout(() => {\n helpHint.hidden = true;\n }, 300);\n localStorage.setItem(HELP_HINT_KEY, \"1\");\n };\n document\n .getElementById(\"studio-help-hint-close\")\n ?.addEventListener(\"click\", dismiss);\n setTimeout(dismiss, 7000);\n }\n\n setupImageDropAndPaste(imageHost);\n setupTimelineResizer(ui);\n\n ui.canvas.addEventListener(\"dblclick\", (e) => {\n const target = (e.target as Element).closest<SVGGElement>(\"[data-elem-id]\");\n if (!target) return;\n const id = target.getAttribute(\"data-elem-id\");\n if (!id) return;\n const def = getDef();\n const el = def?.elements.find((x) => x.id === id);\n if (!el || el.type !== \"text\") return;\n e.preventDefault();\n startInlineTextEdit(ui.canvas, el);\n });\n\n subscribe(() => reflectState(ui));\n reflectState(ui);\n\n setupCanvasPan(ui);\n\n ui.titleInput.addEventListener(\"input\", () => {\n updateMeta({ title: ui.titleInput.value });\n });\n\n ui.openBtn.addEventListener(\"click\", () => void openLibrary(ui));\n ui.newBtn.addEventListener(\"click\", () => openNewDialog(ui));\n\n initPalette();\n initHistoryPanel();\n registerCommands([\n {\n id: \"open\",\n label: \"📂 라이브러리 열기\",\n hint: \"저장된 애니메이션 목록\",\n run: () => void openLibrary(ui),\n },\n {\n id: \"new\",\n label: \"🆕 새 애니메이션\",\n hint: \"빈 캔버스로 시작\",\n run: () => openNewDialog(ui),\n },\n {\n id: \"save\",\n label: \"💾 저장\",\n hint: \"⌘S\",\n run: () => void saveCurrent(ui),\n },\n {\n id: \"delete\",\n label: \"🗑 삭제\",\n hint: \"현재 애니메이션 삭제\",\n run: () => void deleteCurrent(ui),\n },\n { id: \"undo\", label: \"↶ 실행 취소\", hint: \"⌘Z\", run: () => undo() },\n { id: \"redo\", label: \"↷ 다시 실행\", hint: \"⌘⇧Z / ⌘Y\", run: () => redo() },\n {\n id: \"history\",\n label: \"📜 작업 이력\",\n hint: \"⌘⇧H\",\n run: () => openHistoryPanel(),\n },\n {\n id: \"play\",\n label: \"▶ 재생 토글\",\n hint: \"미리보기 시작/중지\",\n run: () => togglePlay(ui),\n },\n {\n id: \"grid\",\n label: \"⊞ 격자 토글\",\n hint: \"G\",\n run: () => setGridEnabled(!isGridEnabled()),\n },\n { id: \"help\", label: \"⌨ 단축키 보기\", hint: \"? / Shift+/\", run: openHelp },\n ]);\n ui.saveBtn.addEventListener(\"click\", () => void saveCurrent(ui));\n ui.deleteBtn.addEventListener(\"click\", () => void deleteCurrent(ui));\n ui.undoBtn.addEventListener(\"click\", () => undo());\n ui.redoBtn.addEventListener(\"click\", () => redo());\n ui.gridToggleBtn.addEventListener(\"click\", () =>\n setGridEnabled(!isGridEnabled()),\n );\n ui.playBtn.addEventListener(\"click\", () => togglePlay(ui));\n ui.restartBtn.addEventListener(\"click\", () => {\n if (isPlaying()) {\n stopPreview(ui);\n togglePlay(ui);\n }\n });\n ui.speedInput.addEventListener(\"input\", () => {\n ui.speedValue.textContent = Number(ui.speedInput.value).toFixed(2) + \"x\";\n });\n\n ui.newCreateBtn.addEventListener(\"click\", () => void createNew(ui));\n\n document.addEventListener(\"click\", (e) => {\n const closer = (e.target as HTMLElement).closest(\n \"[data-studio-dialog-close]\",\n );\n if (!closer) return;\n const dialog = closer.closest<HTMLDialogElement>(\"dialog\");\n if (!dialog) return;\n dialog.close();\n if (dialog === ui.newDialog) dialog.removeAttribute(\"data-mode\");\n });\n\n bindKeyboardShortcuts(ui);\n\n window.addEventListener(\"beforeunload\", (e) => {\n if (isDirty()) e.preventDefault();\n });\n\n if (opts?.initialId) {\n void loadAnimation(ui, opts.initialId);\n } else if (!getDef()) {\n startDraft();\n setStatus(ui, \"임시 작업 (Draft), 저장 시 ID/제목 입력\", \"ok\");\n } else {\n setStatus(ui, \"준비됨\", \"ok\");\n }\n}\n\nfunction reflectState(ui: StudioUi): void {\n ui.undoBtn.disabled = !canUndo();\n ui.redoBtn.disabled = !canRedo();\n const def = getDef();\n if (def) {\n if (document.activeElement !== ui.titleInput) {\n ui.titleInput.value = def.title;\n }\n if (document.activeElement !== ui.canvasWidthInput) {\n ui.canvasWidthInput.value = String(def.canvas.width);\n }\n if (document.activeElement !== ui.canvasHeightInput) {\n ui.canvasHeightInput.value = String(def.canvas.height);\n }\n ui.idDisplay.textContent = isDraft()\n ? \"Draft\"\n : ((def as { id?: string }).id ?? \"\");\n ui.saveBtn.disabled = false;\n ui.deleteBtn.disabled = isDraft();\n } else {\n ui.titleInput.value = \"\";\n ui.canvasWidthInput.value = \"\";\n ui.canvasHeightInput.value = \"\";\n ui.idDisplay.textContent = \"\";\n ui.saveBtn.disabled = true;\n ui.deleteBtn.disabled = true;\n }\n}\n"]}
|