@sky.ui/reactivity 0.0.1
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.md +139 -0
- package/README.md +981 -0
- package/dist/index.d.ts +198 -0
- package/dist/index.js +2671 -0
- package/dist/index.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/reactivity/tracking.ts","../src/reactivity/scheduler.ts","../src/reactivity/effect-scope.ts","../src/reactivity/effect.ts","../src/reactivity/ref-flags.ts","../src/reactivity/proxy-state.ts","../src/reactivity/reactive.ts","../src/reactivity/readonly.ts","../src/reactivity/shallow-reactive.ts","../src/reactivity/shallow-readonly.ts","../src/reactivity/proxy-api.ts","../src/types.ts","../src/reactivity/ref.ts","../src/reactivity/to-ref.ts","../src/reactivity/computed.ts","../src/reactivity/watch.ts","../src/reactivity/next-tick.ts","../src/ast/parser.ts","../src/ast/constants.ts","../src/shared/env.ts","../src/shared/warn-codes.ts","../src/shared/warn.ts","../src/ast/errors.ts","../src/ast/scope.ts","../src/ast/member.ts","../src/ast/operators.ts","../src/ast/eval-expression.ts","../src/ast/eval-expression-async.ts","../src/ast/flow-control.ts","../src/ast/exec-statement.ts","../src/ast/exec-statement-async.ts","../src/ast/context-eval.ts","../src/runtime/registry.ts","../src/runtime/normalize.ts","../src/runtime/text-template.ts","../src/runtime/for-utils.ts","../src/runtime/prop-map.ts","../src/runtime/dom.ts","../src/runtime/model-parse.ts","../src/runtime/model.ts","../src/runtime/model-custom.ts","../src/runtime/events.ts","../src/runtime/compile-mode.ts","../src/runtime/compile-node.ts","../src/runtime/mount.ts","../src/runtime/context.ts","../src/runtime/app.ts","../src/ssr/document.ts","../src/ssr/strip-anchors.ts","../src/ssr/render.ts","../src/runtime/handler-runner.ts"],"names":["p","cleanup","ref","document"],"mappings":";;;AAEA,IAAM,SAAA,uBAAgB,OAAA,EAAyD;AAC/E,IAAM,UAAA,uBAAiB,OAAA,EAAuE;AAE9F,IAAI,YAAA,GAAoC,IAAA;AACxC,IAAM,cAA8B,EAAC;AAE9B,IAAM,WAAA,0BAAqB,SAAS,CAAA;AAEpC,SAAS,iBAAiB,MAAA,EAA4B;AAC3D,EAAA,WAAA,CAAY,KAAK,MAAM,CAAA;AACvB,EAAA,YAAA,GAAe,MAAA;AACjB;AAEO,SAAS,gBAAA,GAAyB;AACvC,EAAA,WAAA,CAAY,GAAA,EAAI;AAChB,EAAA,YAAA,GAAe,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA,IAAK,IAAA;AACxD;AAEO,SAAS,kBAAkB,MAAA,EAA4B;AAC5D,EAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,GAAA,CAAI,MAAM,CAAA;AACnC,EAAA,IAAI,CAAC,KAAA,EAAO;AACZ,EAAA,KAAA,MAAW,EAAE,MAAA,EAAQ,GAAA,EAAI,IAAK,KAAA,EAAO;AACnC,IAAA,SAAA,CAAU,IAAI,MAAM,CAAA,EAAG,IAAI,GAAG,CAAA,EAAG,OAAO,MAAM,CAAA;AAAA,EAChD;AACA,EAAA,KAAA,CAAM,MAAA,GAAS,CAAA;AACjB;AAEO,SAAS,WAAW,MAAA,EAA4B;AACrD,EAAA,MAAA,CAAO,OAAA,GAAU,IAAA;AACjB,EAAA,MAAA,CAAO,MAAA,GAAS,KAAA;AAChB,EAAA,iBAAA,CAAkB,MAAM,CAAA;AACxB,EAAA,UAAA,CAAW,OAAO,MAAM,CAAA;AAC1B;AAEO,SAAS,KAAA,CAAM,QAAgB,GAAA,EAA4B;AAChE,EAAA,IAAI,CAAC,YAAA,IAAgB,YAAA,CAAa,OAAA,IAAW,aAAa,MAAA,EAAQ;AAClE,EAAA,IAAI,OAAA,GAAU,SAAA,CAAU,GAAA,CAAI,MAAM,CAAA;AAClC,EAAA,IAAI,CAAC,SAAS,SAAA,CAAU,GAAA,CAAI,QAAS,OAAA,mBAAU,IAAI,KAAM,CAAA;AACzD,EAAA,IAAI,GAAA,GAAM,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAA;AACzB,EAAA,IAAI,CAAC,KAAK,OAAA,CAAQ,GAAA,CAAI,KAAM,GAAA,mBAAM,IAAI,KAAM,CAAA;AAC5C,EAAA,IAAI,CAAC,GAAA,CAAI,GAAA,CAAI,YAAY,CAAA,EAAG;AAC1B,IAAA,GAAA,CAAI,IAAI,YAAY,CAAA;AACpB,IAAA,IAAI,KAAA,GAAQ,UAAA,CAAW,GAAA,CAAI,YAAY,CAAA;AACvC,IAAA,IAAI,CAAC,KAAA,EAAO,UAAA,CAAW,IAAI,YAAA,EAAe,KAAA,GAAQ,EAAG,CAAA;AACrD,IAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,GAAA,EAAK,CAAA;AAAA,EAC5B;AACF;AAEO,SAAS,OAAA,CAAQ,QAAgB,GAAA,EAA4B;AAClE,EAAA,MAAM,OAAA,GAAU,SAAA,CAAU,GAAA,CAAI,MAAM,CAAA;AACpC,EAAA,IAAI,CAAC,OAAA,EAAS;AACd,EAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAA;AAC3B,EAAA,IAAI,CAAC,GAAA,EAAK;AACV,EAAA,GAAA,CAAI,OAAA,CAAQ,CAAC,CAAA,KAAM;AACjB,IAAA,IAAI,CAAC,EAAE,OAAA,IAAW,CAAC,EAAE,MAAA,EAAQ,CAAA,CAAE,UAAU,CAAC,CAAA;AAAA,EAC5C,CAAC,CAAA;AACH;;;AC1DA,IAAM,QAAA,uBAAe,GAAA,EAAgB;AACrC,IAAM,aAAA,uBAAoB,GAAA,EAAgB;AAC1C,IAAI,QAAA,GAAW,KAAA;AACf,IAAI,YAAA,GAAqC,IAAA;AAEzC,SAAS,SAAA,GAAkB;AACzB,EAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,EAAG,CAAA;AAC3B,EAAA,QAAA,CAAS,KAAA,EAAM;AACf,EAAA,QAAA,GAAW,KAAA;AACX,EAAA,aAAA,CAAc,OAAA,CAAQ,CAAC,EAAA,KAAO,EAAA,EAAI,CAAA;AAClC,EAAA,aAAA,CAAc,KAAA,EAAM;AACpB,EAAA,YAAA,GAAe,IAAA;AACjB;AAEA,SAAS,aAAA,GAAsB;AAC7B,EAAA,IAAI,QAAA,EAAU;AACd,EAAA,QAAA,GAAW,IAAA;AACX,EAAA,YAAA,KAAiB,OAAA,CAAQ,OAAA,EAAQ,CAAE,IAAA,CAAK,SAAS,CAAA;AACnD;AAGO,SAAS,SAAS,GAAA,EAAuB;AAC9C,EAAA,QAAA,CAAS,IAAI,GAAG,CAAA;AAChB,EAAA,aAAA,EAAc;AAChB;AAGO,SAAS,cAAc,EAAA,EAAsB;AAClD,EAAA,aAAA,CAAc,IAAI,EAAE,CAAA;AACpB,EAAA,aAAA,EAAc;AAChB;AAEO,SAAS,UAAU,EAAA,EAAsB;AAC9C,EAAA,EAAA,EAAG;AACH,EAAA,IAAI,QAAA,IAAY,QAAA,CAAS,IAAA,GAAO,CAAA,EAAG;AACjC,IAAA,SAAA,EAAU;AAAA,EACZ,CAAA,MAAO;AACL,IAAA,aAAA,CAAc,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,EAAG,CAAA;AAChC,IAAA,aAAA,CAAc,KAAA,EAAM;AAAA,EACtB;AACF;;;ACtCO,IAAM,cAAN,MAAkB;AAAA,EAKvB,WAAA,CAA4B,WAAW,KAAA,EAAO;AAAlB,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AAAA,EAAmB;AAAA,EAAnB,QAAA;AAAA,EAJ5B,MAAA,GAAS,IAAA;AAAA,EACQ,UAA0B,EAAC;AAAA,EAC3B,YAA+B,EAAC;AAAA,EAIjD,IAAO,EAAA,EAAgB;AACrB,IAAA,IAAI,CAAC,IAAA,CAAK,MAAA,EAAQ,OAAO,EAAA,EAAG;AAC5B,IAAA,MAAM,IAAA,GAAO,WAAA;AACb,IAAA,WAAA,GAAc,IAAA;AACd,IAAA,IAAI;AACF,MAAA,OAAO,EAAA,EAAG;AAAA,IACZ,CAAA,SAAE;AACA,MAAA,WAAA,GAAc,IAAA;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,SAAS,MAAA,EAA4B;AACnC,IAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AAChB,MAAA,MAAA,CAAO,IAAA,EAAK;AACZ,MAAA;AAAA,IACF;AACA,IAAA,IAAA,CAAK,OAAA,CAAQ,KAAK,MAAM,CAAA;AAAA,EAC1B;AAAA,EAEA,gBAAgB,EAAA,EAAsB;AACpC,IAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AAChB,MAAA,EAAA,EAAG;AACH,MAAA;AAAA,IACF;AACA,IAAA,IAAA,CAAK,SAAA,CAAU,KAAK,EAAE,CAAA;AAAA,EACxB;AAAA,EAEA,IAAA,GAAa;AACX,IAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AAClB,IAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AACd,IAAA,KAAA,MAAW,CAAA,IAAK,IAAA,CAAK,SAAA,EAAW,CAAA,EAAE;AAClC,IAAA,IAAA,CAAK,UAAU,MAAA,GAAS,CAAA;AACxB,IAAA,KAAA,MAAW,CAAA,IAAK,IAAA,CAAK,OAAA,EAAS,CAAA,CAAE,IAAA,EAAK;AACrC,IAAA,IAAA,CAAK,QAAQ,MAAA,GAAS,CAAA;AAAA,EACxB;AACF;AAEA,IAAI,WAAA,GAAkC,IAAA;AAE/B,SAAS,WAAA,CAAY,WAAW,KAAA,EAAoB;AACzD,EAAA,OAAO,IAAI,YAAY,QAAQ,CAAA;AACjC;AAEO,SAAS,eAAA,GAAsC;AACpD,EAAA,OAAO,WAAA;AACT;AAEO,SAAS,eAAe,EAAA,EAAsB;AACnD,EAAA,WAAA,EAAa,gBAAgB,EAAE,CAAA;AACjC;;;AChDO,SAAS,MAAA,CACd,EAAA,EACA,IAAA,GAAsB,EAAC,EACG;AAC1B,EAAA,IAAI,SAAA;AAEJ,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,IAAI,MAAA,CAAO,OAAA,IAAW,MAAA,CAAO,MAAA,EAAQ;AACrC,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,SAAA,EAAU;AACV,MAAA,SAAA,GAAY,MAAA;AAAA,IACd;AACA,IAAA,iBAAA,CAAkB,MAAM,CAAA;AACxB,IAAA,IAAI;AACF,MAAA,gBAAA,CAAiB,MAAM,CAAA;AACvB,MAAA,OAAO,EAAA,EAAG;AAAA,IACZ,CAAA,SAAE;AACA,MAAA,gBAAA,EAAiB;AAAA,IACnB;AAAA,EACF,CAAA,CAAA;AAEA,EAAA,MAAA,CAAO,OAAA,GAAU,KAAA;AACjB,EAAA,MAAA,CAAO,MAAA,GAAS,KAAA;AAChB,EAAA,MAAA,CAAO,IAAA,GAAO,MAAM,UAAA,CAAW,MAAM,CAAA;AACrC,EAAA,MAAA,CAAO,QAAQ,MAAM;AACnB,IAAA,MAAA,CAAO,MAAA,GAAS,IAAA;AAAA,EAClB,CAAA;AACA,EAAA,MAAA,CAAO,SAAS,MAAM;AACpB,IAAA,IAAI,OAAO,OAAA,EAAS;AACpB,IAAA,MAAA,CAAO,MAAA,GAAS,KAAA;AAChB,IAAA,MAAA,EAAO;AAAA,EACT,CAAA;AACA,EAAA,MAAA,CAAO,SAAA,GAAY,KAAK,SAAA,IAAa,QAAA;AAErC,EAAA,IAAI,KAAK,SAAA,EAAW;AAClB,IAAA,SAAA,GAAY,IAAA,CAAK,SAAA;AAAA,EACnB;AAEA,EAAA,eAAA,EAAgB,EAAG,SAAS,MAAM,CAAA;AAElC,EAAA,IAAI,CAAC,IAAA,CAAK,IAAA,EAAM,MAAA,EAAO;AACvB,EAAA,OAAO,MAAA;AACT;AAGO,IAAM,WAAA,GAAc;;;ACrDpB,IAAM,QAAA,GAAW,SAAA;AAEjB,SAAS,MAAM,CAAA,EAAkD;AACtE,EAAA,OAAO,CAAC,EAAE,CAAA,IAAK,OAAO,MAAM,QAAA,IAAa,CAAA,CAAmB,QAA8B,CAAA,KAAM,IAAA,CAAA;AAClG;AAEO,SAAS,MAAS,CAAA,EAAwC;AAC/D,EAAA,OAAO,KAAA,CAAM,CAAC,CAAA,GAAK,CAAA,CAAE,KAAA,GAAc,CAAA;AACrC;;;ACVO,SAAS,cAAc,CAAA,EAA0C;AACtE,EAAA,IAAI,CAAC,CAAA,IAAK,OAAO,CAAA,KAAM,UAAU,OAAO,KAAA;AACxC,EAAA,MAAM,CAAA,GAAI,MAAA,CAAO,cAAA,CAAe,CAAC,CAAA;AACjC,EAAA,OAAO,CAAA,KAAM,MAAA,CAAO,SAAA,IAAa,CAAA,KAAM,IAAA;AACzC;AAEO,SAAS,WAAW,CAAA,EAAqB;AAC9C,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,IAAK,cAAc,CAAC,CAAA;AAC5C;AAEO,IAAM,UAAA,uBAAiB,OAAA,EAAwB;AAC/C,IAAM,UAAA,uBAAiB,OAAA,EAAwB;AAC/C,IAAM,UAAA,uBAAiB,OAAA,EAAgB;AACvC,IAAM,kBAAA,uBAAyB,OAAA,EAAwB;AACvD,IAAM,aAAA,GAAgB,cAAA;;;ACJtB,SAAS,SAA2B,GAAA,EAAW;AACpD,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,UAAU,OAAO,GAAA;AAC5C,EAAA,IAAK,GAAA,CAAsB,cAAc,OAAO,GAAA;AAChD,EAAA,IAAI,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA,EAAG,OAAO,GAAA;AAEhC,EAAA,MAAM,MAAA,GAAS,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA;AACjC,EAAA,IAAI,QAAQ,OAAO,MAAA;AAEnB,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,EAAG;AACtB,IAAA,MAAM,YAAA,GAAe;AAAA,MACnB,MAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAMA,EAAAA,GAAI,IAAI,KAAA,CAAM,GAAA,EAAK;AAAA,MACvB,GAAA,CAAI,MAAA,EAAQ,GAAA,EAAK,QAAA,EAAU;AACzB,QAAA,IAAI,GAAA,KAAQ,gBAAgB,OAAO,IAAA;AAEnC,QAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,YAAA,CAAa,QAAA,CAAS,GAAG,CAAA,EAAG;AACzD,UAAA,OAAO,YAAa,IAAA,EAAiB;AACnC,YAAA,MAAM,YAAY,MAAA,CAAO,MAAA;AACzB,YAAA,MAAM,OAAA,GAAU,GAAA;AAChB,YAAA,MAAM,QAAQ,KAAA,CAAM,SAAA;AAIpB,YAAA,MAAM,EAAA,GAAK,MAAM,OAAO,CAAA;AACxB,YAAA,IAAI,CAAC,IAAI,OAAO,MAAA;AAChB,YAAA,MAAM,MAAA,GAAS,EAAA,CAAG,KAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AACpC,YAAA,IAAI,MAAA,CAAO,MAAA,KAAW,SAAA,EAAW,OAAA,CAAQ,QAAQ,QAAQ,CAAA;AACzD,YAAA,IAAI,GAAA,KAAQ,MAAA,IAAU,GAAA,KAAQ,SAAA,IAAa,QAAQ,QAAA,EAAU;AAC3D,cAAA,KAAA,IAAS,CAAA,GAAI,GAAG,CAAA,GAAI,MAAA,CAAO,QAAQ,CAAA,EAAA,EAAK,OAAA,CAAQ,MAAA,EAAQ,CAAA,GAAI,EAAE,CAAA;AAAA,YAChE;AACA,YAAA,OAAO,MAAA;AAAA,UACT,CAAA;AAAA,QACF;AAEA,QAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,KAAK,QAAQ,CAAA;AAC/C,QAAA,KAAA,CAAM,QAAQ,GAAG,CAAA;AACjB,QAAA,OAAO,UAAA,CAAW,KAAK,CAAA,GAAI,QAAA,CAAS,KAAe,CAAA,GAAI,KAAA;AAAA,MACzD,CAAA;AAAA,MACA,GAAA,CAAI,MAAA,EAAQ,GAAA,EAAK,KAAA,EAAO,QAAA,EAAU;AAChC,QAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,GAAG,CAAA;AACnC,QAAA,MAAM,SAAS,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,GAAA,EAAK,OAAO,QAAQ,CAAA;AACvD,QAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,UAAA,OAAA,CAAQ,QAAQ,GAAG,CAAA;AACnB,UAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,KAAQ,EAAA,IAAM,CAAC,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,CAAA,EAAG;AACvE,YAAA,OAAA,CAAQ,QAAQ,GAAG,CAAA;AAAA,UACrB;AAAA,QACF;AACA,QAAA,OAAO,MAAA;AAAA,MACT,CAAA;AAAA,MACA,GAAA,CAAI,QAAQ,GAAA,EAAK;AACf,QAAA,KAAA,CAAM,QAAQ,GAAG,CAAA;AACjB,QAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,GAAG,CAAA;AAAA,MAChC,CAAA;AAAA,MACA,cAAA,CAAe,QAAQ,GAAA,EAAK;AAC1B,QAAA,MAAM,SAAS,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,QAAQ,GAAG,CAAA;AAC/D,QAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,cAAA,CAAe,MAAA,EAAQ,GAAG,CAAA;AACjD,QAAA,IAAI,MAAA,EAAQ;AACV,UAAA,OAAA,CAAQ,QAAQ,GAAG,CAAA;AACnB,UAAA,OAAA,CAAQ,QAAQ,QAAQ,CAAA;AAAA,QAC1B;AACA,QAAA,OAAO,MAAA;AAAA,MACT;AAAA,KACD,CAAA;AAED,IAAA,UAAA,CAAW,GAAA,CAAI,KAAKA,EAAC,CAAA;AACrB,IAAA,UAAA,CAAW,GAAA,CAAIA,IAAG,GAAG,CAAA;AACrB,IAAA,OAAOA,EAAAA;AAAA,EACT;AAEA,EAAA,MAAM,CAAA,GAAI,IAAI,KAAA,CAAM,GAAA,EAAK;AAAA,IACvB,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG;AACX,MAAA,IAAI,CAAA,KAAM,gBAAgB,OAAO,IAAA;AACjC,MAAA,MAAM,CAAA,GAAI,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,GAAG,CAAC,CAAA;AAC7B,MAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACV,MAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG;AACZ,QAAA,MAAM,IAAI,CAAA,CAAE,KAAA;AACZ,QAAA,OAAO,UAAA,CAAW,CAAC,CAAA,GAAI,QAAA,CAAS,CAAW,CAAA,GAAI,CAAA;AAAA,MACjD;AACA,MAAA,OAAO,UAAA,CAAW,CAAC,CAAA,GAAI,QAAA,CAAS,CAAW,CAAA,GAAI,CAAA;AAAA,IACjD,CAAA;AAAA,IACA,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG;AACd,MAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA;AAC5B,MAAA,MAAM,SAAS,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,GAAG,CAAC,CAAA;AACxD,MAAA,MAAM,MAAM,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC,CAAA;AAClC,MAAA,IAAI,QAAQ,CAAA,EAAG;AACb,QAAA,OAAA,CAAQ,GAAG,CAAC,CAAA;AACZ,QAAA,IAAI,CAAC,MAAA,EAAQ,OAAA,CAAQ,CAAA,EAAG,WAAW,CAAA;AAAA,MACrC;AACA,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,IACA,GAAA,CAAI,GAAG,CAAA,EAAG;AACR,MAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACV,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA;AAAA,IACzB,CAAA;AAAA,IACA,cAAA,CAAe,GAAG,CAAA,EAAG;AACnB,MAAA,MAAM,SAAS,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,GAAG,CAAC,CAAA;AACxD,MAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,cAAA,CAAe,CAAA,EAAG,CAAC,CAAA;AACvC,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,OAAA,CAAQ,GAAG,CAAC,CAAA;AACZ,QAAA,OAAA,CAAQ,GAAG,WAAW,CAAA;AAAA,MACxB;AACA,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,IACA,QAAQ,CAAA,EAAG;AACT,MAAA,KAAA,CAAM,GAAG,WAAW,CAAA;AACpB,MAAA,OAAO,OAAA,CAAQ,QAAQ,CAAC,CAAA;AAAA,IAC1B;AAAA,GACD,CAAA;AAED,EAAA,UAAA,CAAW,GAAA,CAAI,KAAK,CAAC,CAAA;AACrB,EAAA,UAAA,CAAW,GAAA,CAAI,GAAG,GAAG,CAAA;AACrB,EAAA,OAAO,CAAA;AACT;;;ACxHO,SAAS,SAA2B,GAAA,EAAW;AACpD,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,UAAU,OAAO,GAAA;AAC5C,EAAA,IAAK,GAAA,CAAgC,aAAa,CAAA,EAAG,OAAO,GAAA;AAC5D,EAAA,IAAI,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA,EAAG,OAAO,GAAA;AAEhC,EAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,GAAA,CAAI,GAAG,CAAA;AACzC,EAAA,IAAI,QAAQ,OAAO,MAAA;AAEnB,EAAA,MAAM,CAAA,GAAI,IAAI,KAAA,CAAM,GAAA,EAAK;AAAA,IACvB,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG;AACX,MAAA,IAAI,CAAA,KAAM,cAAA,IAAkB,CAAA,KAAM,aAAA,EAAe,OAAO,IAAA;AACxD,MAAA,MAAM,CAAA,GAAI,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,GAAG,CAAC,CAAA;AAC7B,MAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACV,MAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG;AACZ,QAAA,MAAM,IAAI,CAAA,CAAE,KAAA;AACZ,QAAA,OAAO,UAAA,CAAW,CAAC,CAAA,GAAI,QAAA,CAAS,CAAW,CAAA,GAAI,CAAA;AAAA,MACjD;AACA,MAAA,OAAO,UAAA,CAAW,CAAC,CAAA,GAAI,QAAA,CAAS,CAAW,CAAA,GAAI,CAAA;AAAA,IACjD,CAAA;AAAA,IACA,GAAA,GAAM;AACJ,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,GAAA,CAAI,GAAG,CAAA,EAAG;AACR,MAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACV,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA;AAAA,IACzB,CAAA;AAAA,IACA,cAAA,GAAiB;AACf,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,QAAQ,CAAA,EAAG;AACT,MAAA,KAAA,CAAM,GAAG,WAAW,CAAA;AACpB,MAAA,OAAO,OAAA,CAAQ,QAAQ,CAAC,CAAA;AAAA,IAC1B;AAAA,GACD,CAAA;AAED,EAAA,kBAAA,CAAmB,GAAA,CAAI,KAAK,CAAC,CAAA;AAC7B,EAAA,UAAA,CAAW,GAAA,CAAI,GAAG,GAAG,CAAA;AACrB,EAAA,OAAO,CAAA;AACT;;;AC3CA,IAAM,iBAAA,uBAAwB,OAAA,EAAwB;AAE/C,SAAS,gBAAkC,GAAA,EAAW;AAC3D,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,UAAU,OAAO,GAAA;AAC5C,EAAA,IAAK,GAAA,CAAsB,cAAc,OAAO,GAAA;AAChD,EAAA,IAAI,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA,EAAG,OAAO,GAAA;AAEhC,EAAA,MAAM,MAAA,GAAS,iBAAA,CAAkB,GAAA,CAAI,GAAG,CAAA;AACxC,EAAA,IAAI,QAAQ,OAAO,MAAA;AAEnB,EAAA,MAAM,CAAA,GAAI,IAAI,KAAA,CAAM,GAAA,EAAK;AAAA,IACvB,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG;AACX,MAAA,IAAI,CAAA,KAAM,gBAAgB,OAAO,IAAA;AACjC,MAAA,MAAM,CAAA,GAAI,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,GAAG,CAAC,CAAA;AAC7B,MAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACV,MAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG,OAAO,CAAA,CAAE,KAAA;AACvB,MAAA,OAAO,CAAA;AAAA,IACT,CAAA;AAAA,IACA,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG;AACd,MAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA;AAC5B,MAAA,MAAM,SAAS,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,GAAG,CAAC,CAAA;AACxD,MAAA,MAAM,MAAM,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC,CAAA;AAClC,MAAA,IAAI,QAAQ,CAAA,EAAG;AACb,QAAA,OAAA,CAAQ,GAAG,CAAC,CAAA;AACZ,QAAA,IAAI,CAAC,MAAA,EAAQ,OAAA,CAAQ,CAAA,EAAG,WAAW,CAAA;AAAA,MACrC;AACA,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,IACA,GAAA,CAAI,GAAG,CAAA,EAAG;AACR,MAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACV,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA;AAAA,IACzB,CAAA;AAAA,IACA,cAAA,CAAe,GAAG,CAAA,EAAG;AACnB,MAAA,MAAM,SAAS,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAK,GAAG,CAAC,CAAA;AACxD,MAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,cAAA,CAAe,CAAA,EAAG,CAAC,CAAA;AACvC,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,OAAA,CAAQ,GAAG,CAAC,CAAA;AACZ,QAAA,OAAA,CAAQ,GAAG,WAAW,CAAA;AAAA,MACxB;AACA,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AAAA,IACA,QAAQ,CAAA,EAAG;AACT,MAAA,KAAA,CAAM,GAAG,WAAW,CAAA;AACpB,MAAA,OAAO,OAAA,CAAQ,QAAQ,CAAC,CAAA;AAAA,IAC1B;AAAA,GACD,CAAA;AAED,EAAA,iBAAA,CAAkB,GAAA,CAAI,KAAK,CAAC,CAAA;AAC5B,EAAA,UAAA,CAAW,GAAA,CAAI,GAAG,GAAG,CAAA;AACrB,EAAA,OAAO,CAAA;AACT;;;ACnDA,IAAM,oBAAA,uBAA2B,OAAA,EAAwB;AAElD,SAAS,gBAAkC,GAAA,EAAW;AAC3D,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,UAAU,OAAO,GAAA;AAC5C,EAAA,IAAI,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA,EAAG,OAAO,GAAA;AAEhC,EAAA,MAAM,MAAA,GAAS,oBAAA,CAAqB,GAAA,CAAI,GAAG,CAAA;AAC3C,EAAA,IAAI,QAAQ,OAAO,MAAA;AAEnB,EAAA,MAAM,CAAA,GAAI,IAAI,KAAA,CAAM,GAAA,EAAK;AAAA,IACvB,GAAA,CAAI,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG;AACX,MAAA,IAAI,CAAA,KAAM,cAAA,IAAkB,CAAA,KAAM,aAAA,EAAe,OAAO,IAAA;AACxD,MAAA,MAAM,CAAA,GAAI,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,GAAG,CAAC,CAAA;AAC7B,MAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACV,MAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG,OAAO,CAAA,CAAE,KAAA;AACvB,MAAA,OAAO,CAAA;AAAA,IACT,CAAA;AAAA,IACA,GAAA,GAAM;AACJ,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,GAAA,CAAI,GAAG,CAAA,EAAG;AACR,MAAA,KAAA,CAAM,GAAG,CAAC,CAAA;AACV,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA;AAAA,IACzB,CAAA;AAAA,IACA,cAAA,GAAiB;AACf,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,QAAQ,CAAA,EAAG;AACT,MAAA,KAAA,CAAM,GAAG,WAAW,CAAA;AACpB,MAAA,OAAO,OAAA,CAAQ,QAAQ,CAAC,CAAA;AAAA,IAC1B;AAAA,GACD,CAAA;AAED,EAAA,oBAAA,CAAqB,GAAA,CAAI,KAAK,CAAC,CAAA;AAC/B,EAAA,UAAA,CAAW,GAAA,CAAI,GAAG,GAAG,CAAA;AACrB,EAAA,OAAO,CAAA;AACT;;;ACrCO,SAAS,MAAS,KAAA,EAAa;AACpC,EAAA,OAAQ,UAAA,CAAW,GAAA,CAAI,KAAe,CAAA,IAAuB,KAAA;AAC/D;AAEO,SAAS,QAA0B,GAAA,EAAW;AACnD,EAAA,IAAI,OAAO,IAAA,IAAQ,OAAO,QAAQ,QAAA,EAAU,UAAA,CAAW,IAAI,GAAa,CAAA;AACxE,EAAA,OAAO,GAAA;AACT;AAEO,SAAS,WAAW,GAAA,EAAoC;AAC7D,EAAA,OAAO,CAAC,EAAE,GAAA,IAAO,OAAO,GAAA,KAAQ,QAAA,IAAa,IAAsB,YAAA,KAAiB,IAAA,CAAA;AACtF;AAEO,SAAS,WAAW,GAAA,EAAuB;AAChD,EAAA,OAAO,CAAC,EAAE,GAAA,IAAO,OAAO,QAAQ,QAAA,IAAa,GAAA,CAAgC,aAAa,CAAA,KAAM,IAAA,CAAA;AAClG;;;ACkDO,IAAM,kBAAA,0BAA2C,kBAAkB,CAAA;;;AC7DnE,SAAS,IAAO,CAAA,EAAc;AACnC,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,EAAE,KAAA,EAAO,GAAG,CAAA;AAC/B,EAAA,MAAA,CAAO,eAAe,CAAA,EAAG,QAAA,EAAU,EAAE,KAAA,EAAO,MAAM,CAAA;AAClD,EAAA,OAAO,CAAA;AACT;AAGO,SAAS,WAAc,CAAA,EAA2B;AACvD,EAAA,MAAM,KAAA,GAAQ,EAAE,KAAA,EAAO,CAAA,EAAE;AACzB,EAAA,MAAM,OAAA,GAA+B;AAAA,IACnC,IAAI,KAAA,GAAQ;AACV,MAAA,KAAA,CAAM,OAAO,OAAO,CAAA;AACpB,MAAA,OAAO,KAAA,CAAM,KAAA;AAAA,IACf,CAAA;AAAA,IACA,IAAI,MAAM,GAAA,EAAK;AACb,MAAA,KAAA,CAAM,KAAA,GAAQ,GAAA;AACd,MAAA,OAAA,CAAQ,OAAO,OAAO,CAAA;AAAA,IACxB;AAAA,GACF;AACA,EAAA,MAAA,CAAO,eAAe,OAAA,EAAS,QAAA,EAAU,EAAE,KAAA,EAAO,MAAM,CAAA;AACxD,EAAA,MAAA,CAAO,eAAe,OAAA,EAAS,kBAAA,EAAoB,EAAE,KAAA,EAAO,OAAO,CAAA;AACnE,EAAA,OAAO,OAAA;AACT;AAGO,SAAS,WAAW,CAAA,EAAuD;AAChF,EAAA,MAAM,QAAQ,CAAA,IAAK,KAAA,CAAM,CAAC,CAAA,GAAK,CAAA,CAAuB,kBAAkB,CAAA,GAAI,MAAA;AAC5E,EAAA,IAAI,KAAA,EAAO,OAAA,CAAQ,KAAA,EAAO,OAAO,CAAA;AACnC;AAEO,SAAS,UAAa,OAAA,EAAsC;AACjE,EAAA,MAAM,KAAA,GAAQ,EAAE,KAAA,EAAO,MAAA,EAAe;AACtC,EAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,KAAA,EAAO,OAAO,CAAA;AAC3C,EAAA,MAAM,UAAA,GAAa,MAAM,OAAA,CAAQ,KAAA,EAAO,OAAO,CAAA;AAC/C,EAAA,MAAM,EAAE,GAAA,EAAK,GAAA,EAAI,GAAI,OAAA,CAAQ,UAAU,UAAU,CAAA;AACjD,EAAA,MAAM,CAAA,GAAI;AAAA,IACR,IAAI,KAAA,GAAQ;AACV,MAAA,QAAA,EAAS;AACT,MAAA,OAAO,GAAA,EAAI;AAAA,IACb,CAAA;AAAA,IACA,IAAI,MAAM,CAAA,EAAM;AACd,MAAA,GAAA,CAAI,CAAC,CAAA;AACL,MAAA,UAAA,EAAW;AAAA,IACb;AAAA,GACF;AACA,EAAA,MAAA,CAAO,eAAe,CAAA,EAAG,QAAA,EAAU,EAAE,KAAA,EAAO,MAAM,CAAA;AAClD,EAAA,OAAO,CAAA;AACT;;;ACnDO,SAAS,KAAA,CACd,QACA,GAAA,EACW;AACX,EAAA,MAAM,CAAA,GAAI;AAAA,IACR,IAAI,KAAA,GAAc;AAChB,MAAA,MAAM,CAAA,GAAI,OAAO,GAAG,CAAA;AACpB,MAAA,OAAQ,KAAA,CAAM,CAAC,CAAA,GAAI,CAAA,CAAE,KAAA,GAAQ,CAAA;AAAA,IAC/B,CAAA;AAAA,IACA,IAAI,MAAM,GAAA,EAAW;AACnB,MAAA,MAAM,GAAA,GAAM,OAAO,GAAG,CAAA;AACtB,MAAA,IAAI,KAAA,CAAM,GAAG,CAAA,EAAG,GAAA,CAAI,KAAA,GAAQ,GAAA;AAAA,WACvB,MAAA,CAAO,GAAG,CAAA,GAAI,GAAA;AAAA,IACrB;AAAA,GACF;AACA,EAAA,MAAA,CAAO,eAAe,CAAA,EAAG,QAAA,EAAU,EAAE,KAAA,EAAO,MAAM,CAAA;AAClD,EAAA,OAAO,CAAA;AACT;AAEO,SAAS,OACd,MAAA,EAC+B;AAC/B,EAAA,MAAM,MAAM,EAAC;AACb,EAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,EAAqB;AACvD,IAAA,GAAA,CAAI,GAAG,CAAA,GAAI,KAAA,CAAM,MAAA,EAAQ,GAAG,CAAA;AAAA,EAC9B;AACA,EAAA,OAAO,GAAA;AACT;;;ACzBO,SAAS,SACd,eAAA,EACQ;AACR,EAAA,MAAM,UAAA,GAAa,OAAO,eAAA,KAAoB,UAAA;AAC9C,EAAA,MAAM,MAAA,GAAS,UAAA,GAAa,eAAA,GAAkB,eAAA,CAAgB,GAAA;AAC9D,EAAA,MAAM,MAAA,GAAS,UAAA,GAAa,MAAA,GAAY,eAAA,CAAgB,GAAA;AAExD,EAAA,MAAM,CAAA,GAAI,IAAO,MAAc,CAAA;AAC/B,EAAA,MAAA,CAAO,MAAM;AACX,IAAA,CAAA,CAAE,QAAQ,MAAA,EAAO;AAAA,EACnB,CAAC,CAAA;AAED,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,OAAO;AAAA,MACL,IAAI,KAAA,GAAQ;AACV,QAAA,OAAO,CAAA,CAAE,KAAA;AAAA,MACX,CAAA;AAAA,MACA,IAAI,MAAM,CAAA,EAAG;AACX,QAAA,MAAA,CAAO,CAAC,CAAA;AAAA,MACV,CAAA;AAAA,MACA,CAAC,QAAQ,GAAG;AAAA,KACd;AAAA,EACF;AACA,EAAA,OAAO,CAAA;AACT;;;ACxBO,SAAS,KAAA,CAAM,GAAA,EAAkB,EAAA,EAAmB,IAAA,GAAqB,EAAC,EAAG;AAClF,EAAA,MAAM,EAAE,SAAA,GAAY,KAAA,EAAO,OAAO,KAAA,EAAO,KAAA,GAAQ,QAAO,GAAI,IAAA;AAE5D,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA;AACjC,EAAA,MAAM,MAAA,GAAS,UACX,MAAM,GAAA,CAAI,IAAI,CAAC,CAAA,KAAO,OAAO,CAAA,KAAM,UAAA,GAAa,CAAA,KAAM,KAAA,CAAM,CAAC,CAAE,CAAA,GAC/D,OAAO,QAAQ,UAAA,GACb,GAAA,GACA,MAAM,KAAA,CAAM,GAAG,CAAA;AAErB,EAAA,MAAM,WAAW,CAAC,CAAA,EAAY,IAAA,mBAAO,IAAI,KAAY,KAAe;AAClE,IAAA,CAAA,GAAI,MAAM,CAAC,CAAA;AACX,IAAA,IAAI,CAAC,KAAK,OAAO,CAAA,KAAM,YAAY,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAG,OAAO,CAAA;AACvD,IAAA,IAAA,CAAK,IAAI,CAAC,CAAA;AACV,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG;AACpB,MAAA,CAAA,CAAE,MAAA;AACF,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,CAAE,MAAA,EAAQ,KAAK,QAAA,CAAS,CAAA,CAAE,CAAC,CAAA,EAAG,IAAI,CAAA;AAAA,IACxD,CAAA,MAAO;AACL,MAAA,MAAM,MAAA,GAAS,CAAA;AACf,MAAA,KAAA,MAAW,KAAK,MAAA,EAAQ,QAAA,CAAS,MAAA,CAAO,CAAC,GAAG,IAAI,CAAA;AAAA,IAClD;AACA,IAAA,OAAO,CAAA;AAAA,EACT,CAAA;AAEA,EAAA,IAAI,GAAA;AACJ,EAAA,IAAIC,QAAAA;AAEJ,EAAA,MAAM,MAAM,MAAM;AAChB,IAAA,IAAIA,QAAAA,EAAS;AACX,MAAAA,QAAAA,EAAQ;AACR,MAAAA,QAAAA,GAAU,MAAA;AAAA,IACZ;AACA,IAAA,MAAM,MAAM,MAAA,EAAO;AACnB,IAAA,IAAI,IAAA,WAAe,GAAG,CAAA;AACtB,IAAA,MAAM,IAAA,GAAO,GAAA;AACb,IAAA,MAAM,UAAA,GAAa,SAAS,MAAA,IAAa,SAAA;AACzC,IAAA,GAAA,GAAM,GAAA;AACN,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,MAAM,SAAA,GAAY,CAAC,EAAA,KAAmB;AACpC,QAAAA,QAAAA,GAAU,EAAA;AAAA,MACZ,CAAA;AACA,MAAA,EAAA,CAAG,GAAA,EAAK,MAAM,SAAS,CAAA;AAAA,IACzB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,SAAA,GACJ,KAAA,KAAU,MAAA,GACN,CAAC,KAAA,KAAsB,OAAM,GAC7B,CAAC,KAAA,KAAsB,QAAA,CAAS,KAAK,CAAA;AAC3C,EAAA,MAAM,MAAA,GAAS,OAAO,GAAA,EAAK,EAAE,MAAM,CAAC,SAAA,EAAW,WAAW,CAAA;AAE1D,EAAA,OAAO,MAAM,OAAO,IAAA,EAAK;AAC3B;;;ACvDO,IAAM,QAAA,GAAW,CAAC,EAAA,KAAmC;AAC1D,EAAA,IAAI,EAAA,EAAI;AACN,IAAA,OAAO,IAAI,OAAA,CAAc,CAAC,OAAA,KAAY;AACpC,MAAA,aAAA,CAAc,MAAM;AAClB,QAAA,EAAA,EAAG;AACH,QAAA,OAAA,EAAQ;AAAA,MACV,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AACA,EAAA,OAAO,IAAI,OAAA,CAAc,CAAC,OAAA,KAAY;AACpC,IAAA,aAAA,CAAc,MAAM,SAAS,CAAA;AAAA,EAC/B,CAAC,CAAA;AACH;ACXA,IAAM,SAAA,uBAAgB,GAAA,EAA2B;AACjD,IAAM,SAAA,uBAAgB,GAAA,EAAwB;AAC9C,SAAS,UAAU,CAAA,EAAmB;AACpC,EAAA,OAAO,MAAA,CAAO,KAAK,EAAE,CAAA,CAClB,MAAK,CACL,OAAA,CAAQ,WAAW,EAAE,CAAA;AAC1B;AAEO,SAAS,UAAU,IAAA,EAA6B;AACrD,EAAA,MAAM,GAAA,GAAM,SAAA,CAAU,IAAI,CAAA,IAAK,WAAA;AAC/B,EAAA,IAAI,GAAA,GAAM,SAAA,CAAU,GAAA,CAAI,GAAG,CAAA;AAC3B,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAgB,KAAA,CAAA,KAAA,CAAM,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAA,EAAK;AAAA,QACtC,WAAA,EAAa,QAAA;AAAA,QACb,UAAA,EAAY;AAAA,OACb,CAAA;AACD,MAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA;AAC5B,MAAA,IAAI,KAAA,EAAO,SAAS,qBAAA,EAAuB;AACzC,QAAA,MAAM,IAAI,WAAA,CAAY,CAAA,yCAAA,EAA4C,KAAA,EAAO,IAAA,IAAQ,OAAO,CAAA,CAAE,CAAA;AAAA,MAC5F;AACA,MAAA,GAAA,GAAM,KAAA,CAAM,UAAA;AACZ,MAAA,SAAA,CAAU,GAAA,CAAI,KAAK,GAAG,CAAA;AAAA,IACxB,SAAS,CAAA,EAAY;AACnB,MAAA,MAAM,MAAM,CAAA,YAAa,KAAA,GAAQ,CAAA,CAAE,OAAA,GAAU,OAAO,CAAC,CAAA;AACrD,MAAA,MAAM,IAAI,WAAA,CAAY,CAAA,gBAAA,EAAmB,GAAG;AAAA,KAAA,EAAU,GAAG,CAAA,CAAE,CAAA;AAAA,IAC7D;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT;AAEO,SAAS,UAAU,IAAA,EAA0B;AAClD,EAAA,IAAA,GAAO,MAAA,CAAO,IAAA,IAAQ,EAAE,CAAA,CAAE,IAAA,EAAK;AAC/B,EAAA,IAAI,CAAC,SAAA,CAAU,GAAA,CAAI,IAAI,CAAA,EAAG;AACxB,IAAA,MAAM,OAAA,GAAgB,YAAM,IAAA,EAAM;AAAA,MAChC,WAAA,EAAa,QAAA;AAAA,MACb,UAAA,EAAY,QAAA;AAAA,MACZ,yBAAA,EAA2B,IAAA;AAAA,MAC3B,0BAAA,EAA4B;AAAA,KAC7B,CAAA;AACD,IAAA,SAAA,CAAU,GAAA,CAAI,MAAM,OAAO,CAAA;AAAA,EAC7B;AACA,EAAA,MAAM,MAAA,GAAS,SAAA,CAAU,GAAA,CAAI,IAAI,CAAA;AACjC,EAAA,IAAI,CAAC,MAAA,EAAQ,MAAM,IAAI,YAAY,iCAAiC,CAAA;AACpE,EAAA,OAAO,MAAA;AACT;AAGO,SAAS,YAAY,IAAA,EAA6B;AACvD,EAAA,OAAO,UAAU,IAAI,CAAA;AACvB;AAGO,SAAS,YAAY,IAAA,EAA0B;AACpD,EAAA,OAAO,UAAU,IAAI,CAAA;AACvB;AAEO,SAAS,cAAA,GAAuB;AACrC,EAAA,SAAA,CAAU,KAAA,EAAM;AAChB,EAAA,SAAA,CAAU,KAAA,EAAM;AAClB;;;AC/DO,IAAM,YAAA,GAAe,OAAO,MAAA,CAAO;AAAA,EACxC,IAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AAAA;AACF,CAAC,CAAA;AAEM,IAAM,gCAAgB,IAAI,GAAA,CAAI,CAAC,WAAA,EAAa,WAAA,EAAa,aAAa,CAAC,CAAA;AACvE,IAAM,mBAAA,uBAA0B,GAAA,CAAI;AAAA,EACzC,QAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAC,CAAA;;;AC3BM,SAAS,SAAA,GAAqB;AACnC,EAAA,IAAI,OAAO,UAAA,CAAW,WAAA,KAAgB,SAAA,EAAW;AAC/C,IAAA,OAAO,UAAA,CAAW,WAAA;AAAA,EACpB;AACA,EAAA,OAAO,OAAO,OAAA,KAAY,WAAA,IAAe,QAAQ,GAAA,CAAI,QAAA,KAAa,eAC9D,KAAA,GACA,IAAA;AACN;AAEO,SAAS,UAAU,OAAA,EAAwB;AAChD,EAAA,UAAA,CAAW,WAAA,GAAc,OAAA;AAC3B;AAGA,IAAM,iBAAiB,SAAA;;;ACtBhB,IAAM,SAAA,GAAY;AAAA,EACvB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,iBAAA,EAAmB,mBAAA;AAAA,EACnB,sBAAA,EAAwB,wBAAA;AAAA,EACxB,eAAA,EAAiB,iBAAA;AAAA,EACjB,mBAAA,EAAqB,qBAAA;AAAA,EACrB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,sBAAA,EAAwB,wBAAA;AAAA,EACxB,eAAA,EAAiB,iBAAA;AAAA,EACjB,QAAA,EAAU,UAAA;AAAA,EACV,QAAA,EAAU,UAAA;AAAA,EACV,WAAA,EAAa,aAAA;AAAA,EACb,sBAAA,EAAwB,wBAAA;AAAA,EACxB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,eAAA,EAAiB;AACnB;AAIA,IAAM,QAAA,GAAqC;AAAA,EACzC,CAAC,SAAA,CAAU,mBAAmB,GAC5B,oGAAA;AAAA,EACF,CAAC,SAAA,CAAU,iBAAiB,GAC1B,2FAAA;AAAA,EACF,CAAC,SAAA,CAAU,sBAAsB,GAC/B,2EAAA;AAAA,EACF,CAAC,SAAA,CAAU,eAAe,GACxB,uEAAA;AAAA,EACF,CAAC,SAAA,CAAU,mBAAmB,GAC5B,0GAAA;AAAA,EACF,CAAC,SAAA,CAAU,kBAAkB,GAC3B,4EAAA;AAAA,EACF,CAAC,SAAA,CAAU,sBAAsB,GAC/B,sDAAA;AAAA,EACF,CAAC,SAAA,CAAU,eAAe,GACxB,0CAAA;AAAA,EACF,CAAC,SAAA,CAAU,QAAQ,GACjB,sCAAA;AAAA,EACF,CAAC,SAAA,CAAU,QAAQ,GACjB,oCAAA;AAAA,EACF,CAAC,SAAA,CAAU,WAAW,GACpB,UAAA;AAAA,EACF,CAAC,SAAA,CAAU,sBAAsB,GAC/B,mDAAA;AAAA,EACF,CAAC,SAAA,CAAU,kBAAkB,GAC3B,4CAAA;AAAA,EACF,CAAC,SAAA,CAAU,eAAe,GACxB;AACJ,CAAA;AAEO,SAAS,cAAA,CACd,IAAA,EACA,IAAA,GAAwC,EAAC,EACjC;AACR,EAAA,IAAI,GAAA,GAAM,QAAA,CAAS,IAAI,CAAA,IAAK,IAAA;AAC5B,EAAA,KAAA,MAAW,CAAC,CAAA,EAAG,CAAC,KAAK,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,EAAG;AACzC,IAAA,GAAA,GAAM,IAAI,UAAA,CAAW,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAA,EAAK,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,EAC1C;AACA,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,YAAA,EAAc,EAAE,CAAA;AACrC;;;AC5CA,IAAM,UAAA,uBAAiB,GAAA,EAAY;AACnC,IAAM,UAAA,uBAAiB,OAAA,EAAyB;AAChD,IAAI,aAAA,GAAgB,CAAA;AACpB,IAAI,aAAA,GAAuC,IAAA;AAEpC,SAAS,eAAe,OAAA,EAAsC;AACnE,EAAA,aAAA,GAAgB,OAAA;AAClB;AAEA,SAAS,mBAAmB,EAAA,EAAwC;AAClE,EAAA,IAAI,CAAC,IAAI,OAAO,EAAA;AAChB,EAAA,IAAI,EAAA,GAAK,UAAA,CAAW,GAAA,CAAI,EAAE,CAAA;AAC1B,EAAA,IAAI,OAAO,MAAA,EAAW;AACpB,IAAA,EAAA,GAAK,EAAE,aAAA;AACP,IAAA,UAAA,CAAW,GAAA,CAAI,IAAI,EAAE,CAAA;AAAA,EACvB;AACA,EAAA,OAAO,OAAO,EAAE,CAAA;AAClB;AAEA,SAAS,OAAA,CAAQ,MAAgB,OAAA,EAA+B;AAC9D,EAAA,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,kBAAA,CAAmB,OAAA,EAAS,OAAO,CAAC,CAAA,CAAA,EAAI,OAAA,EAAS,KAAA,IAAS,EAAE,CAAA,CAAA;AAChF;AAEA,SAAS,cAAc,EAAA,EAAqB;AAC1C,EAAA,MAAM,GAAA,GAAM,EAAA,CAAG,OAAA,CAAQ,WAAA,EAAY;AACnC,EAAA,MAAM,KAAK,EAAA,CAAG,EAAA,GAAK,CAAA,CAAA,EAAI,EAAA,CAAG,EAAE,CAAA,CAAA,GAAK,EAAA;AACjC,EAAA,MAAM,KAAA,GAAQ,gBAAgB,EAAE,CAAA;AAChC,EAAA,OAAO,KAAA,GAAQ,CAAA,CAAA,EAAI,GAAG,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAA,GAAM,CAAA,CAAA,EAAI,GAAG,CAAA,EAAG,EAAE,CAAA,CAAA,CAAA;AACxD;AAEA,SAAS,gBAAgB,EAAA,EAAqB;AAC5C,EAAA,MAAM,QAAkB,EAAC;AACzB,EAAA,MAAM,MAAA,GAAS,EAAA,CAAG,YAAA,CAAa,SAAS,CAAA;AACxC,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,KAAA,CAAM,IAAA;AAAA,MACJ,CAAA,SAAA,EAAY,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,EAAE,CAAC,CAAA,EAAG,MAAA,CAAO,MAAA,GAAS,EAAA,GAAK,QAAA,GAAM,EAAE,CAAA,CAAA;AAAA,KACjE;AAAA,EACF;AACA,EAAA,MAAM,QAAQ,EAAA,CAAG,YAAA,CAAa,QAAQ,CAAA,IAAK,EAAA,CAAG,aAAa,aAAa,CAAA;AACxE,EAAA,IAAI,KAAA,QAAa,IAAA,CAAK,CAAA,QAAA,EAAW,MAAM,KAAA,CAAM,CAAA,EAAG,EAAE,CAAC,CAAA,CAAA,CAAG,CAAA;AACtD,EAAA,OAAO,KAAA,CAAM,KAAK,GAAG,CAAA;AACvB;AAEA,SAAS,YAAY,OAAA,EAA+B;AAClD,EAAA,MAAM,QAAkB,EAAC;AACzB,EAAA,IAAI,SAAS,OAAA,EAAS;AACpB,IAAA,KAAA,CAAM,KAAK,CAAA,KAAA,EAAQ,aAAA,CAAc,OAAA,CAAQ,OAAO,CAAC,CAAA,CAAE,CAAA;AAAA,EACrD;AACA,EAAA,IAAI,SAAS,KAAA,EAAO;AAClB,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,GAAA,EAAM,OAAA,CAAQ,KAAK,CAAA,CAAA,CAAG,CAAA;AAAA,EACnC;AACA,EAAA,OAAO,MAAM,MAAA,GAAS,CAAA,GAAI,OAAO,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA,GAAI,EAAA;AACtD;AAEA,SAAS,QAAA,CACP,IAAA,EACA,OAAA,EACA,OAAA,EACM;AACN,EAAA,IAAI,CAAC,WAAU,EAAG;AAElB,EAAA,MAAM,KAAA,GAAQ,YAAY,OAAO,CAAA;AACjC,EAAA,MAAM,IAAA,GAAO,CAAA,YAAA,EAAe,OAAO,CAAA,EAAG,KAAK,CAAA,CAAA;AAE3C,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,aAAA,CAAc,IAAA,EAAM,SAAS,OAAO,CAAA;AACpC,IAAA;AAAA,EACF;AAEA,EAAA,OAAA,CAAQ,KAAK,IAAI,CAAA;AACnB;AAKO,SAAS,IAAA,CACd,IAAA,EACA,IAAA,GAAwC,IACxC,OAAA,EACM;AACN,EAAA,QAAA,CAAS,IAAA,EAAM,cAAA,CAAe,IAAA,EAAM,IAAI,GAAG,OAAO,CAAA;AACpD;AAKO,SAAS,QAAA,CACd,IAAA,EACA,IAAA,GAAwC,IACxC,OAAA,EACM;AACN,EAAA,IAAI,CAAC,WAAU,EAAG;AAClB,EAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,IAAA,EAAM,OAAO,CAAA;AACjC,EAAA,IAAI,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA,EAAG;AACzB,EAAA,UAAA,CAAW,IAAI,GAAG,CAAA;AAClB,EAAA,IAAA,CAAK,IAAA,EAAM,MAAM,OAAO,CAAA;AAC1B;AAKO,SAAS,QAAA,CACd,IAAA,EACA,GAAA,EACA,OAAA,EACM;AACN,EAAA,IAAI,CAAC,WAAU,EAAG;AAChB,IAAA,IAAI,IAAA,KAAS,UAAU,eAAA,EAAiB;AACtC,MAAA,OAAA,CAAQ,MAAM,GAAG,CAAA;AAAA,IACnB;AACA,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,QAAA,GAAW,OAAA,EAAS,KAAA,GACtB,EAAE,KAAA,EAAO,CAAA,EAAA,EAAK,OAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,EAAI,GAC/B,EAAE,KAAA,EAAO,EAAA,EAAG;AAChB,EAAA,MAAM,OAAA,GAAU,cAAA,CAAe,IAAA,EAAM,QAAQ,CAAA;AAC7C,EAAA,MAAM,KAAA,GAAQ,YAAY,OAAO,CAAA;AAEjC,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,aAAA,CAAc,IAAA,EAAM,GAAG,OAAO,CAAA,CAAA,EAAI,UAAU,GAAG,CAAC,IAAI,OAAO,CAAA;AAC3D,IAAA;AAAA,EACF;AAEA,EAAA,OAAA,CAAQ,IAAA,CAAK,CAAA,YAAA,EAAe,OAAO,CAAA,EAAG,KAAK,CAAA,CAAE,CAAA;AAC7C,EAAA,IAAI,OAAO,IAAA,EAAM;AACf,IAAA,OAAA,CAAQ,IAAA,CAAK,SAAA,CAAU,GAAG,CAAC,CAAA;AAAA,EAC7B;AACF;AAEA,SAAS,UAAU,GAAA,EAAsB;AACvC,EAAA,IAAI,eAAe,KAAA,EAAO;AACxB,IAAA,OAAO,GAAA,CAAI,SAAS,GAAA,CAAI,OAAA;AAAA,EAC1B;AACA,EAAA,OAAO,OAAO,GAAG,CAAA;AACnB;AAGO,SAAS,WAAA,GAAoB;AAClC,EAAA,UAAA,CAAW,KAAA,EAAM;AACnB;;;ACxJO,SAAS,KAAK,GAAA,EAAoB;AACvC,EAAA,MAAM,IAAI,KAAA,CAAM,QAAA,GAAW,GAAG,CAAA;AAChC;AACO,SAAS,aAAa,CAAA,EAAyB;AACpD,EAAA,OAAO,MAAM,IAAA,KAAS,OAAO,CAAA,KAAM,QAAA,IAAY,OAAO,CAAA,KAAM,UAAA,CAAA;AAC9D;AACO,SAAS,oBAAoB,GAAA,EAAwB;AAC1D,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,aAAA,CAAc,GAAA,CAAI,GAAG,CAAA,EAAG;AACrD,IAAA,IAAI,WAAU,EAAG;AACf,MAAA,IAAA;AAAA,QACE,SAAA,CAAU,WAAA;AAAA,QACV;AAAA,UACE,MAAA,EAAQ,4BAA4B,GAAG,CAAA,kCAAA;AAAA,SACzC;AAAA,QACA,EAAE,OAAO,YAAA;AAAa,OACxB;AAAA,IACF;AACA,IAAA,IAAA,CAAK,CAAA,yBAAA,EAA4B,GAAG,CAAA,CAAE,CAAA;AAAA,EACxC;AACF;AACO,SAAS,qBAAqB,IAAA,EAAoB;AACvD,EAAA,IAAI,mBAAA,CAAoB,GAAA,CAAI,IAAI,CAAA,EAAG;AACjC,IAAA,IAAI,WAAU,EAAG;AACf,MAAA,IAAA;AAAA,QACE,SAAA,CAAU,WAAA;AAAA,QACV;AAAA,UACE,MAAA,EAAQ,uBAAuB,IAAI,CAAA,4DAAA;AAAA,SACrC;AAAA,QACA,EAAE,OAAO,YAAA;AAAa,OACxB;AAAA,IACF;AACA,IAAA,IAAA,CAAK,CAAA,oBAAA,EAAuB,IAAI,CAAA,CAAE,CAAA;AAAA,EACpC;AACF;AACO,SAAS,MAAM,CAAA,EAA6B;AACjD,EAAA,OAAO,OAAO,CAAA,KAAM,QAAA,GAAW,MAAA,CAAO,CAAC,CAAA,GAAK,CAAA;AAC9C;;;ACnCO,SAAS,WAAA,CAAY,GAAA,EAA8B,MAAA,GAAyC,IAAA,EAAiB;AAClH,EAAA,OAAO,EAAE,GAAA,EAAK,MAAA,EAAQ,0BAAU,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA,EAAE;AACtD;AAEO,SAAS,MAAA,CAAO,OAAkB,IAAA,EAAc;AACrD,EAAA,oBAAA,CAAqB,IAAI,CAAA;AACzB,EAAA,IAAI,QAAQ,KAAA,CAAM,MAAA,EAAQ,OAAO,KAAA,CAAM,OAAO,IAAI,CAAA;AAClD,EAAA,IAAI,QAAQ,KAAA,CAAM,GAAA,EAAK,OAAO,KAAA,CAAM,IAAI,IAAI,CAAA;AAC5C,EAAA,IAAI,IAAA,IAAQ,YAAA,EAAc,OAAQ,YAAA,CAAyC,IAAI,CAAA;AAC/E,EAAA,OAAO,MAAA;AACT;AAGO,SAAS,MAAA,CAAO,KAAA,EAAkB,IAAA,EAAc,KAAA,EAAgB;AACrE,EAAA,oBAAA,CAAqB,IAAI,CAAA;AAEzB,EAAA,IAAI,GAAA;AACJ,EAAA,IAAI,KAAA,GAA0B,KAAA;AAE9B,EAAA,IAAI,IAAA,IAAQ,MAAM,MAAA,EAAQ;AACxB,IAAA,GAAA,GAAM,KAAA,CAAM,OAAO,IAAI,CAAA;AACvB,IAAA,KAAA,GAAQ,QAAA;AAAA,EACV,CAAA,MAAA,IAAW,IAAA,IAAQ,KAAA,CAAM,GAAA,EAAK;AAC5B,IAAA,GAAA,GAAM,KAAA,CAAM,IAAI,IAAI,CAAA;AACpB,IAAA,KAAA,GAAQ,KAAA;AAAA,EACV,CAAA,MAAO;AACL,IAAA,GAAA,GAAM,MAAA;AACN,IAAA,KAAA,GAAQ,KAAA;AAAA,EACV;AAEA,EAAA,IAAI,MAAM,GAAG,CAAA,IAAK,CAAC,KAAA,CAAM,KAAK,CAAA,EAAG;AAC/B,IAAA,GAAA,CAAI,KAAA,GAAQ,KAAA;AACZ,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,KAAA,KAAU,QAAA,EAAU,KAAA,CAAM,MAAA,CAAO,IAAI,CAAA,GAAI,KAAA;AAAA,OACxC,KAAA,CAAM,GAAA,CAAI,IAAI,CAAA,GAAI,KAAA;AAEvB,EAAA,OAAO,KAAA;AACT;;;ACzCO,SAAS,SAAA,CAAU,KAAc,GAAA,EAA2B;AACjE,EAAA,mBAAA,CAAoB,GAAG,CAAA;AACvB,EAAA,IAAI,CAAC,YAAA,CAAa,GAAG,CAAA,EAAG,OAAO,MAAA;AAC/B,EAAA,OAAQ,IAAqC,GAAG,CAAA;AAClD;AAEO,SAAS,SAAA,CAAU,GAAA,EAAc,GAAA,EAAkB,KAAA,EAAyB;AACjF,EAAA,mBAAA,CAAoB,GAAG,CAAA;AACvB,EAAA,IAAI,CAAC,YAAA,CAAa,GAAG,CAAA,OAAQ,mCAAmC,CAAA;AAChE,EAAC,GAAA,CAAqC,GAAG,CAAA,GAAI,KAAA;AAC7C,EAAA,OAAO,KAAA;AACT;AAGO,SAAS,kBAAA,CAAmB,KAAc,GAAA,EAA2B;AAC1E,EAAA,IAAI,MAAM,GAAG,CAAA,IAAK,GAAA,KAAQ,OAAA,SAAgB,GAAA,CAAI,KAAA;AAC9C,EAAA,OAAO,GAAA;AACT;;;AClBA,SAAS,IAAI,CAAA,EAAoB;AAC/B,EAAA,OAAO,OAAO,CAAC,CAAA;AACjB;AAEO,SAAS,UAAA,CAAW,EAAA,EAAY,CAAA,EAAY,CAAA,EAAqB;AACtE,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,GAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB,KAAK,GAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB,KAAK,GAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB,KAAK,GAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB,KAAK,GAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,IAAK,GAAA,CAAI,CAAC,CAAA;AAAA,IACxB,KAAK,IAAA;AACH,MAAA,OAAO,CAAA,IAAK,CAAA;AAAA,IACd,KAAK,IAAA;AACH,MAAA,OAAO,CAAA,IAAK,CAAA;AAAA,IACd,KAAK,KAAA;AACH,MAAA,OAAO,CAAA,KAAM,CAAA;AAAA,IACf,KAAK,KAAA;AACH,MAAA,OAAO,CAAA,KAAM,CAAA;AAAA,IACf,KAAK,GAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,IAAK,GAAA,CAAI,CAAC,CAAA;AAAA,IACxB,KAAK,GAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,IAAK,GAAA,CAAI,CAAC,CAAA;AAAA,IACxB,KAAK,GAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB,KAAK,GAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB,KAAK,GAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,CAAC,CAAA;AAAA,IACvB,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,IAAK,GAAA,CAAI,CAAC,CAAA;AAAA,IACxB,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,IAAK,GAAA,CAAI,CAAC,CAAA;AAAA,IACxB,KAAK,KAAA;AACH,MAAA,OAAO,GAAA,CAAI,CAAC,CAAA,KAAM,GAAA,CAAI,CAAC,CAAA;AAAA,IACzB,KAAK,IAAA;AACH,MAAA,OAAO,OAAO,CAAA,KAAM,QAAA,IAAY,MAAM,IAAA,IAAQ,MAAA,CAAO,CAAC,CAAA,IAAM,CAAA;AAAA,IAC9D,KAAK,YAAA;AACH,MAAA,OACE,OAAO,MAAM,UAAA,IAAc,OAAO,MAAM,QAAA,IAAY,CAAA,KAAM,QAAQ,CAAA,YAAa,CAAA;AAAA,IAEnF;AACE,MAAA,IAAA,CAAK,4BAA4B,EAAE,CAAA;AAAA;AAEzC;AAEO,SAAS,SAAA,CAAU,IAAY,CAAA,EAAqB;AACzD,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,GAAA;AACH,MAAA,OAAO,CAAC,IAAI,CAAC,CAAA;AAAA,IACf,KAAK,GAAA;AACH,MAAA,OAAO,CAAC,IAAI,CAAC,CAAA;AAAA,IACf,KAAK,GAAA;AACH,MAAA,OAAO,CAAC,CAAA;AAAA,IACV,KAAK,GAAA;AACH,MAAA,OAAO,CAAC,IAAI,CAAC,CAAA;AAAA,IACf,KAAK,QAAA;AACH,MAAA,OAAO,OAAO,CAAA;AAAA,IAChB,KAAK,MAAA;AACH,MAAA,OAAO,KAAK,CAAA;AAAA,IACd,KAAK,QAAA;AACH,MAAA,OAAO,IAAA;AAAA,IACT;AACE,MAAA,IAAA,CAAK,2BAA2B,EAAE,CAAA;AAAA;AAExC;AAEO,SAAS,eAAA,CAAgB,EAAA,EAAY,OAAA,EAAkB,QAAA,EAA4B;AACxF,EAAA,QAAQ,EAAA;AAAI,IACV,KAAK,GAAA;AACH,MAAA,OAAO,QAAA;AAAA,IACT,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA;AAAA,IACpC,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA;AAAA,IACpC,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA;AAAA,IACpC,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA;AAAA,IACpC,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA;AAAA,IACpC,KAAK,KAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,IAAK,GAAA,CAAI,QAAQ,CAAA;AAAA,IACrC,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA;AAAA,IACpC,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA;AAAA,IACpC,KAAK,IAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA;AAAA,IACpC,KAAK,KAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,IAAK,GAAA,CAAI,QAAQ,CAAA;AAAA,IACrC,KAAK,KAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,IAAK,GAAA,CAAI,QAAQ,CAAA;AAAA,IACrC,KAAK,MAAA;AACH,MAAA,OAAO,GAAA,CAAI,OAAO,CAAA,KAAM,GAAA,CAAI,QAAQ,CAAA;AAAA,IACtC;AACE,MAAA,IAAA,CAAK,gCAAgC,EAAE,CAAA;AAAA;AAE7C;;;ACrGO,SAAS,aAAA,CAAc,IAAA,EAAmB,KAAA,EAAkB,IAAA,EAAgB;AACjF,EAAA,IAAI,IAAA,CAAK,SAAS,YAAA,EAAc;AAC9B,IAAA,oBAAA,CAAqB,KAAK,IAAI,CAAA;AAC9B,IAAA,OAAO;AAAA,MACL,GAAA,EAAK,MAAM,MAAA,CAAO,KAAA,EAAO,KAAK,IAAI,CAAA;AAAA,MAClC,KAAK,CAAC,CAAA,KAAe,OAAO,KAAA,EAAO,IAAA,CAAK,MAAM,CAAC;AAAA,KACjD;AAAA,EACF;AAEA,EAAA,IAAI,IAAA,CAAK,SAAS,kBAAA,EAAoB;AACpC,IAAA,IAAI,GAAA,GAAM,cAAA,CAAe,IAAA,CAAK,MAAA,EAAQ,KAAW,CAAA;AAEjD,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,QAAA,GACb,KAAA,CAAM,cAAA,CAAe,IAAA,CAAK,QAAA,EAAU,KAAW,CAAC,CAAA,GAChD,IAAA,CAAK,QAAA,CAAS,IAAA;AAElB,IAAA,GAAA,GAAM,kBAAA,CAAmB,KAAK,GAAG,CAAA;AAEjC,IAAA,OAAO;AAAA,MACL,GAAA,EAAK,MAAM,SAAA,CAAU,GAAA,EAAK,GAAG,CAAA;AAAA,MAC7B,KAAK,CAAC,CAAA,KAAe,SAAA,CAAU,GAAA,EAAK,KAAK,CAAC;AAAA,KAC5C;AAAA,EACF;AAEA,EAAA,IAAA,CAAK,6BAAA,GAAgC,KAAK,IAAI,CAAA;AAChD;AAEO,SAAS,cAAA,CAAe,IAAA,EAAmB,KAAA,EAAkB,IAAA,EAAyB;AAC3F,EAAA,QAAQ,KAAK,IAAA;AAAM,IACjB,KAAK,SAAA;AACH,MAAA,OAAO,IAAA,CAAK,KAAA;AAAA,IAEd,KAAK,YAAA;AACH,MAAA,OAAO,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,IAEvC,KAAK,gBAAA;AACH,MAAA,OAAO,MAAA;AAAA,IAET,KAAK,iBAAA;AACH,MAAA,OAAO,KAAK,QAAA,CAAS,GAAA;AAAA,QAAI,CAAC,EAAA,KACxB,EAAA,GAAK,eAAe,EAAA,EAAI,KAAW,CAAA,GAAI;AAAA,OACzC;AAAA,IAEF,KAAK,kBAAA,EAAoB;AACvB,MAAA,MAAM,MAAwC,EAAC;AAC/C,MAAA,KAAA,MAAW,CAAA,IAAK,KAAK,UAAA,EAAY;AAC/B,QAAA,IAAI,EAAE,IAAA,KAAS,UAAA;AACb,UAAA,IAAA,CAAK,+BAAA,GAAkC,EAAE,IAAI,CAAA;AAE/C,QAAA,MAAM,IAAI,CAAA,CAAE,QAAA,GACR,cAAA,CAAe,CAAA,CAAE,KAAK,KAAW,CAAA,GACjC,CAAA,CAAE,IAAI,IAAA,KAAS,YAAA,GACf,EAAE,GAAA,CAAI,IAAA,GACN,EAAE,GAAA,CAAI,KAAA;AAEV,QAAA,mBAAA,CAAoB,CAAC,CAAA;AACrB,QAAA,GAAA,CAAI,CAAC,CAAA,GAAI,cAAA,CAAe,CAAA,CAAE,KAAA,EAAO,KAAW,CAAA;AAAA,MAC9C;AACA,MAAA,OAAO,GAAA;AAAA,IACT;AAAA,IAEA,KAAK,iBAAA,EAAmB;AACtB,MAAA,IAAI,CAAA,GAAI,EAAA;AACR,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,MAAA,CAAO,QAAQ,CAAA,EAAA,EAAK;AAC3C,QAAA,CAAA,IAAK,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,MAAM,MAAA,IAAU,EAAA;AACpC,QAAA,IAAI,IAAA,CAAK,WAAA,CAAY,CAAC,CAAA,EAAG;AACvB,UAAA,CAAA,IAAK,MAAA,CAAO,eAAe,IAAA,CAAK,WAAA,CAAY,CAAC,CAAA,EAAG,KAAW,CAAA,IAAK,EAAE,CAAA;AAAA,QACpE;AAAA,MACF;AACA,MAAA,OAAO,CAAA;AAAA,IACT;AAAA,IAEA,KAAK,iBAAA;AACH,MAAA,OAAO,cAAA,CAAe,IAAA,CAAK,UAAA,EAAY,KAAW,CAAA;AAAA,IAEpD,KAAK,kBAAA,EAAoB;AACvB,MAAA,IAAI,GAAA,GAAM,cAAA,CAAe,IAAA,CAAK,MAAA,EAAQ,KAAW,CAAA;AACjD,MAAA,IAAA,CAAK,OAAO,IAAA,IAAQ,GAAA,KAAQ,MAAA,KAAc,IAAA,CAAK,UAAU,OAAO,MAAA;AAChE,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,QAAA,GACb,KAAA,CAAM,cAAA,CAAe,IAAA,CAAK,QAAA,EAAU,KAAW,CAAC,CAAA,GAChD,IAAA,CAAK,QAAA,CAAS,IAAA;AAElB,MAAA,GAAA,GAAM,kBAAA,CAAmB,KAAK,GAAG,CAAA;AACjC,MAAA,OAAO,SAAA,CAAU,KAAK,GAAG,CAAA;AAAA,IAC3B;AAAA,IAEA,KAAK,gBAAA,EAAkB;AACrB,MAAA,MAAM,OAAkB,EAAC;AACzB,MAAA,KAAA,MAAW,CAAA,IAAK,KAAK,SAAA,EAAW;AAC9B,QAAA,IAAI,CAAA,CAAE,SAAS,eAAA,EAAiB;AAC9B,UAAA,MAAM,MAAA,GAAS,cAAA,CAAe,CAAA,CAAE,QAAA,EAAU,KAAW,CAAA;AACrD,UAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,OAAQ,kCAAkC,CAAA;AACnE,UAAA,IAAA,CAAK,IAAA,CAAK,GAAG,MAAM,CAAA;AAAA,QACrB,CAAA,MAAO;AACL,UAAA,IAAA,CAAK,IAAA,CAAK,cAAA,CAAe,CAAA,EAAG,KAAW,CAAC,CAAA;AAAA,QAC1C;AAAA,MACF;AAEA,MAAA,IAAI,IAAA,CAAK,MAAA,CAAO,IAAA,KAAS,YAAA,EAAc;AACrC,QAAA,MAAM,IAAA,GAAO,KAAK,MAAA,CAAO,IAAA;AACzB,QAAA,oBAAA,CAAqB,IAAI,CAAA;AACzB,QAAA,MAAM,EAAA,GAAK,MAAA,CAAO,KAAA,EAAO,IAAI,CAAA;AAC7B,QAAA,IAAI,OAAO,OAAO,UAAA,EAAY;AAC5B,UAAA,IAAI,IAAA,CAAK,UAAU,OAAO,MAAA;AAC1B,UAAA,OAAO,MAAA;AAAA,QACT;AACA,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,KAAA,CAAM,GAAA,EAAK,IAAI,CAAA;AAAA,MACjC;AAEA,MAAA,IAAI,IAAA,CAAK,MAAA,CAAO,IAAA,KAAS,kBAAA,EAAoB;AAC3C,QAAA,IAAI,MAAM,cAAA,CAAe,IAAA,CAAK,MAAA,CAAO,MAAA,EAAQ,KAAW,CAAA;AACxD,QAAA,IAAA,CAAK,OAAO,IAAA,IAAQ,GAAA,KAAQ,MAAA,KAAc,IAAA,CAAK,UAAU,OAAO,MAAA;AAEhE,QAAA,MAAM,GAAA,GAAM,IAAA,CAAK,MAAA,CAAO,QAAA,GACpB,MAAM,cAAA,CAAe,IAAA,CAAK,MAAA,CAAO,QAAA,EAAU,KAAW,CAAC,CAAA,GACvD,IAAA,CAAK,OAAO,QAAA,CAAS,IAAA;AAEzB,QAAA,GAAA,GAAM,kBAAA,CAAmB,KAAK,GAAG,CAAA;AAEjC,QAAA,MAAM,EAAA,GAAK,SAAA,CAAU,GAAA,EAAK,GAAG,CAAA;AAC7B,QAAA,IAAI,OAAO,OAAO,UAAA,EAAY;AAC5B,UAAA,IAAI,IAAA,CAAK,UAAU,OAAO,MAAA;AAC1B,UAAA,OAAO,MAAA;AAAA,QACT;AACA,QAAA,OAAO,EAAA,CAAG,KAAA,CAAM,GAAA,EAAK,IAAI,CAAA;AAAA,MAC3B;AAEA,MAAA,IAAA,CAAK,2BAAA,GAA8B,IAAA,CAAK,MAAA,CAAO,IAAI,CAAA;AAAA,IACrD;AAAA,IAEA,KAAK,uBAAA;AACH,MAAA,OAAO,eAAe,IAAA,CAAK,IAAA,EAAM,KAAW,IACxC,cAAA,CAAe,IAAA,CAAK,UAAA,EAAY,KAAW,CAAA,GAC3C,cAAA,CAAe,IAAA,CAAK,SAAA,EAAW,KAAW,CAAA;AAAA,IAEhD,KAAK,mBAAA,EAAqB;AACxB,MAAA,MAAM,IAAA,GAAO,cAAA,CAAe,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA;AAClD,MAAA,IAAI,KAAK,QAAA,KAAa,IAAA;AACpB,QAAA,OAAO,IAAA,IAAQ,cAAA,CAAe,IAAA,CAAK,KAAA,EAAO,KAAW,CAAA;AACvD,MAAA,IAAI,KAAK,QAAA,KAAa,IAAA;AACpB,QAAA,OAAO,IAAA,IAAQ,cAAA,CAAe,IAAA,CAAK,KAAA,EAAO,KAAW,CAAA;AACvD,MAAA,IAAI,KAAK,QAAA,KAAa,IAAA;AACpB,QAAA,OAAO,IAAA,IAAQ,cAAA,CAAe,IAAA,CAAK,KAAA,EAAO,KAAW,CAAA;AACvD,MAAA,IAAA,CAAK,0BAAA,GAA6B,KAAK,QAAQ,CAAA;AAAA,IACjD;AAAA,IAEA,KAAK,kBAAA;AACH,MAAA,OAAO,UAAA;AAAA,QACL,IAAA,CAAK,QAAA;AAAA,QACL,cAAA,CAAe,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA;AAAA,QACrC,cAAA,CAAe,IAAA,CAAK,KAAA,EAAO,KAAW;AAAA,OACxC;AAAA,IAEF,KAAK,iBAAA;AACH,MAAA,OAAO,SAAA;AAAA,QACL,IAAA,CAAK,QAAA;AAAA,QACL,cAAA,CAAe,IAAA,CAAK,QAAA,EAAU,KAAW;AAAA,OAC3C;AAAA,IAEF,KAAK,kBAAA,EAAoB;AACvB,MAAA,MAAM,EAAA,GAAK,aAAA,CAAc,IAAA,CAAK,QAAA,EAAU,KAAW,CAAA;AACnD,MAAA,MAAM,MAAA,GAAS,GAAG,GAAA,EAAI;AACtB,MAAA,MAAM,CAAA,GAAI,OAAO,MAAM,CAAA;AACvB,MAAA,MAAM,UAAU,IAAA,CAAK,QAAA,KAAa,IAAA,GAAO,CAAA,GAAI,IAAI,CAAA,GAAI,CAAA;AACrD,MAAA,EAAA,CAAG,IAAI,OAAO,CAAA;AACd,MAAA,OAAO,IAAA,CAAK,SAAS,OAAA,GAAU,MAAA;AAAA,IACjC;AAAA,IAEA,KAAK,sBAAA,EAAwB;AAC3B,MAAA,MAAM,EAAA,GAAK,aAAA,CAAc,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA;AAC/C,MAAA,MAAM,KAAA,GAAQ,cAAA,CAAe,IAAA,CAAK,KAAA,EAAO,KAAW,CAAA;AACpD,MAAA,MAAM,OAAO,eAAA,CAAgB,IAAA,CAAK,UAAU,EAAA,CAAG,GAAA,IAAO,KAAK,CAAA;AAC3D,MAAA,EAAA,CAAG,IAAI,IAAI,CAAA;AACX,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,IAEA,KAAK,oBAAA,EAAsB;AACzB,MAAA,IAAI,CAAA;AACJ,MAAA,KAAA,MAAW,MAAM,IAAA,CAAK,WAAA,MAAiB,cAAA,CAAe,EAAA,EAAI,KAAW,CAAA;AACrE,MAAA,OAAO,CAAA;AAAA,IACT;AAAA,IAEA,KAAK,yBAAA;AACH,MAAA,OAAO,cAAA,CAAe,IAAA,CAAK,UAAA,EAAY,KAAW,CAAA;AAAA,IAEpD;AACE,MAAA,IAAA,CAAK,yBAAA,GAA4B,KAAK,IAAI,CAAA;AAAA;AAEhD;;;AClMA,eAAsB,mBAAA,CACpB,IAAA,EACA,KAAA,EACA,IAAA,EACkB;AAClB,EAAA,IAAI,IAAA,EAAM,SAAS,iBAAA,EAAmB;AACpC,IAAA,MAAM,CAAA,GAAI,cAAA,CAAe,IAAA,CAAK,QAAA,EAAU,KAAW,CAAA;AACnD,IAAA,OAAO,MAAM,OAAA,CAAQ,OAAA,CAAQ,CAAyB,CAAA;AAAA,EACxD;AACA,EAAA,OAAO,cAAA,CAAe,IAAA,EAAM,KAAW,CAAA;AACzC;;;ACdO,IAAM,UAAA,0BAAoB,QAAQ,CAAA;AAClC,IAAM,SAAA,0BAAmB,OAAO,CAAA;AAChC,IAAM,YAAA,0BAAsB,UAAU,CAAA;AAItC,SAAS,UAAU,KAAA,EAA4B;AACpD,EAAA,OAAO,EAAE,CAAA,EAAG,UAAA,EAAY,CAAA,EAAG,KAAA,EAAM;AACnC;AAEO,SAAS,QAAA,GAAuB;AACrC,EAAA,OAAO,EAAE,GAAG,SAAA,EAAU;AACxB;AAEO,SAAS,WAAA,GAA0B;AACxC,EAAA,OAAO,EAAE,GAAG,YAAA,EAAa;AAC3B;AAEO,SAAS,SAAS,CAAA,EAA6B;AACpD,EAAA,OAAO,KAAK,IAAA,IAAQ,OAAO,CAAA,KAAM,QAAA,IAAa,EAAiB,CAAA,KAAM,UAAA;AACvE;AAEO,SAAS,QAAQ,CAAA,EAA6B;AACnD,EAAA,OAAO,KAAK,IAAA,IAAQ,OAAO,CAAA,KAAM,QAAA,IAAa,EAAiB,CAAA,KAAM,SAAA;AACvE;AAEO,SAAS,WAAW,CAAA,EAA6B;AACtD,EAAA,OAAO,KAAK,IAAA,IAAQ,OAAO,CAAA,KAAM,QAAA,IAAa,EAAiB,CAAA,KAAM,YAAA;AACvE;;;ACRA,SAAS,UAAA,CACP,IAAA,EACA,KAAA,EACA,IAAA,EACS;AACT,EAAA,MAAM,YAAA,GAAe,cAAA,CAAe,IAAA,CAAK,YAAA,EAAc,KAAW,CAAA;AAClE,EAAA,IAAI,OAAA,GAAU,KAAA;AACd,EAAA,KAAA,MAAW,QAAA,IAAY,KAAK,KAAA,EAAO;AACjC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,IAAI,SAAS,IAAA,EAAM;AACjB,QAAA,IAAI,eAAe,QAAA,CAAS,IAAA,EAAM,KAAW,MAAM,YAAA,EAAc;AACjE,QAAA,OAAA,GAAU,IAAA;AAAA,MACZ,CAAA,MAAO;AACL,QAAA,OAAA,GAAU,IAAA;AAAA,MACZ;AAAA,IACF;AACA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,KAAA,MAAW,IAAA,IAAQ,SAAS,UAAA,EAAY;AACtC,QAAA,MAAM,CAAA,GAAI,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,IAAI,CAAA;AACzC,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACA,EAAA;AACF;AAEO,SAAS,aAAA,CAAc,IAAA,EAAmB,KAAA,EAAkB,IAAA,EAAyB;AAC1F,EAAA,QAAQ,KAAK,IAAA;AAAM,IACjB,KAAK,SAAA,EAAW;AACd,MAAA,KAAA,MAAW,CAAA,IAAM,KAAoB,IAAA,EAAM;AACzC,QAAA,MAAM,CAAA,GAAI,aAAA,CAAc,CAAA,EAAG,KAAA,EAAO,IAAI,CAAA;AACtC,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AAAA,MAC1B;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,gBAAA,EAAkB;AACrB,MAAA,MAAM,KAAA,GAAQ,YAAY,KAAA,CAAM,GAAA,EAAK,OAAO,MAAA,CAAO,KAAA,CAAM,MAAM,CAAC,CAAA;AAChE,MAAA,KAAA,MAAW,CAAA,IAAK,KAAK,IAAA,EAAM;AACzB,QAAA,MAAM,CAAA,GAAI,aAAA,CAAc,CAAA,EAAG,KAAA,EAAO,IAAI,CAAA;AACtC,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,QAAQ,CAAC,CAAA,IAAK,UAAA,CAAW,CAAC,GAAG,OAAO,CAAA;AAAA,MAC1C;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,qBAAA;AACH,MAAA,OAAO,cAAA,CAAe,IAAA,CAAK,UAAA,EAAY,KAAW,CAAA;AAAA,IAEpD,KAAK,gBAAA;AACH,MAAA;AAAA,IAEF,KAAK,aAAA,EAAe;AAClB,MAAA,MAAM,KAAK,CAAC,CAAC,eAAe,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA;AAClD,MAAA,IAAI,IAAI,OAAO,aAAA,CAAc,IAAA,CAAK,UAAA,EAAY,OAAO,IAAI,CAAA;AACzD,MAAA,IAAI,KAAK,SAAA,EAAW,OAAO,cAAc,IAAA,CAAK,SAAA,EAAW,OAAO,IAAI,CAAA;AACpE,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,iBAAA;AACH,MAAA,OAAO,SAAA;AAAA,QACL,KAAK,QAAA,GAAW,cAAA,CAAe,KAAK,QAAA,EAAU,KAAW,CAAA,GAAI;AAAA,OAC/D;AAAA,IAEF,KAAK,gBAAA;AACH,MAAA,MAAM,cAAA,CAAe,IAAA,CAAK,QAAA,EAAU,KAAW,CAAA;AAAA,IAEjD,KAAK,gBAAA;AACH,MAAA,OAAO,QAAA,EAAS;AAAA,IAElB,KAAK,mBAAA;AACH,MAAA,OAAO,WAAA,EAAY;AAAA,IAErB,KAAK,iBAAA;AACH,MAAA,OAAO,UAAA,CAAW,IAAA,EAAM,KAAA,EAAO,IAAI,CAAA;AAAA,IAErC,KAAK,cAAA,EAAgB;AACnB,MAAA,IAAI;AACF,QAAA,MAAM,CAAA,GAAI,aAAA,CAAc,IAAA,CAAK,KAAA,EAAO,OAAO,IAAI,CAAA;AAC/C,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AAAA,MAC1B,SAAS,GAAA,EAAK;AACZ,QAAA,IAAI,KAAK,OAAA,EAAS;AAChB,UAAA,MAAM,KAAA,GAAQ,YAAY,KAAA,CAAM,GAAA,EAAK,OAAO,MAAA,CAAO,KAAA,CAAM,MAAM,CAAC,CAAA;AAChE,UAAA,MAAM,KAAA,GAAQ,KAAK,OAAA,CAAQ,KAAA;AAC3B,UAAA,IAAI,KAAA,EAAO,SAAS,YAAA,EAAc;AAChC,YAAA,oBAAA,CAAqB,MAAM,IAAI,CAAA;AAC/B,YAAA,KAAA,CAAM,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA,GAAI,GAAA;AAAA,UAC7B;AACA,UAAA,MAAM,IAAI,aAAA,CAAc,IAAA,CAAK,OAAA,CAAQ,IAAA,EAAM,OAAO,IAAI,CAAA;AACtD,UAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AAAA,QAC1B,CAAA,MAAO;AACL,UAAA,MAAM,GAAA;AAAA,QACR;AAAA,MACF,CAAA,SAAE;AACA,QAAA,IAAI,KAAK,SAAA,EAAW,aAAA,CAAc,IAAA,CAAK,SAAA,EAAW,OAAO,IAAI,CAAA;AAAA,MAC/D;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,qBAAA,EAAuB;AAC1B,MAAA,KAAA,MAAW,CAAA,IAAK,KAAK,YAAA,EAAc;AACjC,QAAA,IAAI,CAAA,CAAE,EAAA,CAAG,IAAA,KAAS,YAAA,OAAmB,iCAAiC,CAAA;AACtE,QAAA,MAAM,IAAA,GAAO,EAAE,EAAA,CAAG,IAAA;AAClB,QAAA,oBAAA,CAAqB,IAAI,CAAA;AACzB,QAAA,KAAA,CAAM,MAAA,CAAO,IAAI,CAAA,GAAI,CAAA,CAAE,IAAA,GACnB,eAAe,CAAA,CAAE,IAAA,EAAM,KAAW,CAAA,GAClC,MAAA;AAAA,MACN;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,cAAA,EAAgB;AACnB,MAAA,IAAI,KAAK,IAAA,EAAM;AACb,QAAA,IAAI,IAAA,CAAK,IAAA,CAAK,IAAA,KAAS,qBAAA,EAAuB;AAC5C,UAAA,aAAA,CAAc,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,IAAI,CAAA;AAAA,QACtC,CAAA,MAAO;AACL,UAAA,cAAA,CAAe,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA;AAAA,QACvC;AAAA,MACF;AACA,MAAA,WAAS;AACP,QAAA,IAAI,IAAA,CAAK,QAAQ,CAAC,cAAA,CAAe,KAAK,IAAA,EAAM,KAAW,CAAA,EAAG;AAC1D,QAAA,MAAM,CAAA,GAAI,aAAA,CAAc,IAAA,CAAK,IAAA,EAAM,OAAO,IAAI,CAAA;AAC9C,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAChB,QAAA,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG;AACjB,UAAA,IAAI,KAAK,MAAA,EAAQ,cAAA,CAAe,IAAA,CAAK,MAAA,EAAQ,KAAW,CAAA;AACxD,UAAA;AAAA,QACF;AACA,QAAA,IAAI,KAAK,MAAA,EAAQ,cAAA,CAAe,IAAA,CAAK,MAAA,EAAQ,KAAW,CAAA;AAAA,MAC1D;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,gBAAA,EAAkB;AACrB,MAAA,OAAO,cAAA,CAAe,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA,EAAG;AAC7C,QAAA,MAAM,CAAA,GAAI,aAAA,CAAc,IAAA,CAAK,IAAA,EAAM,OAAO,IAAI,CAAA;AAC9C,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAChB,QAAA,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG;AAAA,MACrB;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,kBAAA,EAAoB;AACvB,MAAA,GAAG;AACD,QAAA,MAAM,CAAA,GAAI,aAAA,CAAc,IAAA,CAAK,IAAA,EAAM,OAAO,IAAI,CAAA;AAC9C,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAChB,QAAA,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG;AAAA,MACrB,CAAA,QAAS,cAAA,CAAe,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA;AAC9C,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,gBAAA,EAAkB;AACrB,MAAA,MAAM,GAAA,GAAM,cAAA,CAAe,IAAA,CAAK,KAAA,EAAO,KAAW,CAAA;AAIlD,MAAA,IAAI,GAAA,IAAO,IAAA,IAAQ,OAAO,GAAA,KAAQ,QAAA,EAAU;AAC5C,MAAA,KAAA,MAAW,OAAO,GAAA,EAAK;AACrB,QAAA,IAAI,IAAA,CAAK,IAAA,CAAK,IAAA,KAAS,YAAA,EAAc;AACnC,UAAA,IAAA,CAAK,oCAAoC,CAAA;AAAA,QAC3C;AACA,QAAA,oBAAA,CAAqB,IAAA,CAAK,KAAK,IAAI,CAAA;AACnC,QAAA,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA,GAAI,GAAA;AAC/B,QAAA,MAAM,CAAA,GAAI,aAAA,CAAc,IAAA,CAAK,IAAA,EAAM,OAAO,IAAI,CAAA;AAC9C,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAChB,QAAA,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG;AAAA,MACrB;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,gBAAA,EAAkB;AACrB,MAAA,MAAM,GAAA,GAAM,cAAA,CAAe,IAAA,CAAK,KAAA,EAAO,KAAW,CAAA;AAClD,MAAA,IAAI,GAAA,IAAO,IAAA,IAAQ,OAAO,GAAA,KAAQ,QAAA,IAAY,EAAE,MAAA,CAAO,QAAA,IAAY,MAAA,CAAO,GAAG,CAAA,CAAA,EAAI;AAC/E,QAAA;AAAA,MACF;AACA,MAAA,KAAA,MAAW,SAAS,GAAA,EAA0B;AAC5C,QAAA,IAAI,IAAA,CAAK,IAAA,CAAK,IAAA,KAAS,YAAA,EAAc;AACnC,UAAA,oBAAA,CAAqB,IAAA,CAAK,KAAK,IAAI,CAAA;AACnC,UAAA,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA,GAAI,KAAA;AAAA,QACjC,CAAA,MAAA,IAAW,IAAA,CAAK,IAAA,CAAK,IAAA,KAAS,qBAAA,EAAuB;AACnD,UAAA,MAAM,CAAA,GAAI,IAAA,CAAK,IAAA,CAAK,YAAA,CAAa,CAAC,CAAA;AAClC,UAAA,IAAI,CAAC,CAAA,IAAK,CAAA,CAAE,GAAG,IAAA,KAAS,YAAA,OAAmB,gCAAgC,CAAA;AAC3E,UAAA,oBAAA,CAAqB,CAAA,CAAE,GAAG,IAAI,CAAA;AAC9B,UAAA,KAAA,CAAM,MAAA,CAAO,CAAA,CAAE,EAAA,CAAG,IAAI,CAAA,GAAI,KAAA;AAAA,QAC5B,CAAA,MAAO;AACL,UAAA,IAAA,CAAK,2CAA2C,CAAA;AAAA,QAClD;AACA,QAAA,MAAM,CAAA,GAAI,aAAA,CAAc,IAAA,CAAK,IAAA,EAAM,OAAO,IAAI,CAAA;AAC9C,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAChB,QAAA,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG;AAAA,MACrB;AACA,MAAA;AAAA,IACF;AAAA,IAEA;AACE,MAAA,IAAA,CAAK,yBAAA,GAA4B,KAAK,IAAI,CAAA;AAAA;AAEhD;;;AC5MA,eAAe,eAAA,CACb,IAAA,EACA,KAAA,EACA,IAAA,EACkB;AAClB,EAAA,MAAM,eAAe,MAAM,mBAAA,CAAoB,IAAA,CAAK,YAAA,EAAc,KAAW,CAAA;AAC7E,EAAA,IAAI,OAAA,GAAU,KAAA;AACd,EAAA,KAAA,MAAW,QAAA,IAAY,KAAK,KAAA,EAAO;AACjC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,IAAI,SAAS,IAAA,EAAM;AACjB,QAAA,IAAK,MAAM,mBAAA,CAAoB,QAAA,CAAS,MAAM,KAAW,MAAO,YAAA,EAAc;AAC5E,UAAA;AAAA,QACF;AACA,QAAA,OAAA,GAAU,IAAA;AAAA,MACZ,CAAA,MAAO;AACL,QAAA,OAAA,GAAU,IAAA;AAAA,MACZ;AAAA,IACF;AACA,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,KAAA,MAAW,IAAA,IAAQ,SAAS,UAAA,EAAY;AACtC,QAAA,MAAM,CAAA,GAAI,MAAM,kBAAA,CAAmB,IAAA,EAAM,OAAO,IAAI,CAAA;AACpD,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACA,EAAA;AACF;AAEA,eAAsB,kBAAA,CACpB,IAAA,EACA,KAAA,EACA,IAAA,EACkB;AAClB,EAAA,QAAQ,KAAK,IAAA;AAAM,IACjB,KAAK,SAAA,EAAW;AACd,MAAA,KAAA,MAAW,CAAA,IAAM,KAAoB,IAAA,EAAM;AACzC,QAAA,MAAM,CAAA,GAAI,MAAM,kBAAA,CAAmB,CAAA,EAAG,OAAO,IAAI,CAAA;AACjD,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AAAA,MAC1B;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,gBAAA,EAAkB;AACrB,MAAA,MAAM,KAAA,GAAQ,YAAY,KAAA,CAAM,GAAA,EAAK,OAAO,MAAA,CAAO,KAAA,CAAM,MAAM,CAAC,CAAA;AAChE,MAAA,KAAA,MAAW,CAAA,IAAK,KAAK,IAAA,EAAM;AACzB,QAAA,MAAM,CAAA,GAAI,MAAM,kBAAA,CAAmB,CAAA,EAAG,OAAO,IAAI,CAAA;AACjD,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,QAAQ,CAAC,CAAA,IAAK,UAAA,CAAW,CAAC,GAAG,OAAO,CAAA;AAAA,MAC1C;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,qBAAA;AACH,MAAA,OAAO,MAAM,mBAAA,CAAoB,IAAA,CAAK,UAAA,EAAY,KAAW,CAAA;AAAA,IAE/D,KAAK,gBAAA;AACH,MAAA;AAAA,IAEF,KAAK,aAAA,EAAe;AAClB,MAAA,MAAM,EAAA,GAAK,CAAC,CAAE,MAAM,oBAAoB,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA;AAC9D,MAAA,IAAI,IAAI,OAAO,MAAM,mBAAmB,IAAA,CAAK,UAAA,EAAY,OAAO,IAAI,CAAA;AACpE,MAAA,IAAI,IAAA,CAAK,WAAW,OAAO,MAAM,mBAAmB,IAAA,CAAK,SAAA,EAAW,OAAO,IAAI,CAAA;AAC/E,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,iBAAA;AACH,MAAA,OAAO,SAAA;AAAA,QACL,IAAA,CAAK,WACD,MAAM,mBAAA,CAAoB,KAAK,QAAA,EAAU,KAAW,CAAA,GACpD;AAAA,OACN;AAAA,IAEF,KAAK,gBAAA;AACH,MAAA,MAAM,MAAM,mBAAA,CAAoB,IAAA,CAAK,QAAA,EAAU,KAAW,CAAA;AAAA,IAE5D,KAAK,gBAAA;AACH,MAAA,OAAO,QAAA,EAAS;AAAA,IAElB,KAAK,mBAAA;AACH,MAAA,OAAO,WAAA,EAAY;AAAA,IAErB,KAAK,iBAAA;AACH,MAAA,OAAO,MAAM,eAAA,CAAgB,IAAA,EAAM,KAAA,EAAO,IAAI,CAAA;AAAA,IAEhD,KAAK,cAAA,EAAgB;AACnB,MAAA,IAAI;AACF,QAAA,MAAM,IAAI,MAAM,kBAAA,CAAmB,IAAA,CAAK,KAAA,EAAO,OAAO,IAAI,CAAA;AAC1D,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AAAA,MAC1B,SAAS,GAAA,EAAK;AACZ,QAAA,IAAI,KAAK,OAAA,EAAS;AAChB,UAAA,MAAM,KAAA,GAAQ,YAAY,KAAA,CAAM,GAAA,EAAK,OAAO,MAAA,CAAO,KAAA,CAAM,MAAM,CAAC,CAAA;AAChE,UAAA,MAAM,KAAA,GAAQ,KAAK,OAAA,CAAQ,KAAA;AAC3B,UAAA,IAAI,KAAA,EAAO,SAAS,YAAA,EAAc;AAChC,YAAA,oBAAA,CAAqB,MAAM,IAAI,CAAA;AAC/B,YAAA,KAAA,CAAM,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA,GAAI,GAAA;AAAA,UAC7B;AACA,UAAA,MAAM,IAAI,MAAM,kBAAA,CAAmB,KAAK,OAAA,CAAQ,IAAA,EAAM,OAAO,IAAI,CAAA;AACjE,UAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AAAA,QAC1B,CAAA,MAAO;AACL,UAAA,MAAM,GAAA;AAAA,QACR;AAAA,MACF,CAAA,SAAE;AACA,QAAA,IAAI,KAAK,SAAA,EAAW,MAAM,mBAAmB,IAAA,CAAK,SAAA,EAAW,OAAO,IAAI,CAAA;AAAA,MAC1E;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,qBAAA,EAAuB;AAC1B,MAAA,KAAA,MAAW,CAAA,IAAK,KAAK,YAAA,EAAc;AACjC,QAAA,IAAI,CAAA,CAAE,EAAA,CAAG,IAAA,KAAS,YAAA,OAAmB,iCAAiC,CAAA;AACtE,QAAA,MAAM,IAAA,GAAO,EAAE,EAAA,CAAG,IAAA;AAClB,QAAA,oBAAA,CAAqB,IAAI,CAAA;AACzB,QAAA,KAAA,CAAM,MAAA,CAAO,IAAI,CAAA,GAAI,CAAA,CAAE,IAAA,GACnB,MAAM,mBAAA,CAAoB,CAAA,CAAE,IAAA,EAAM,KAAW,CAAA,GAC7C,MAAA;AAAA,MACN;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,cAAA,EAAgB;AACnB,MAAA,IAAI,KAAK,IAAA,EAAM;AACb,QAAA,IAAI,IAAA,CAAK,IAAA,CAAK,IAAA,KAAS,qBAAA,EAAuB;AAC5C,UAAA,MAAM,kBAAA,CAAmB,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,IAAI,CAAA;AAAA,QACjD,CAAA,MAAO;AACL,UAAA,MAAM,mBAAA,CAAoB,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA;AAAA,QAClD;AAAA,MACF;AACA,MAAA,WAAS;AACP,QAAA,IAAI,IAAA,CAAK,QAAQ,CAAE,MAAM,oBAAoB,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA,EAAI;AACvE,QAAA,MAAM,IAAI,MAAM,kBAAA,CAAmB,IAAA,CAAK,IAAA,EAAM,OAAO,IAAI,CAAA;AACzD,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAChB,QAAA,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG;AACjB,UAAA,IAAI,KAAK,MAAA,EAAQ,MAAM,oBAAoB,IAAA,CAAK,MAAA,EAAQ,KAAW,CAAA;AACnE,UAAA;AAAA,QACF;AACA,QAAA,IAAI,KAAK,MAAA,EAAQ,MAAM,oBAAoB,IAAA,CAAK,MAAA,EAAQ,KAAW,CAAA;AAAA,MACrE;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,gBAAA,EAAkB;AACrB,MAAA,OAAO,MAAM,mBAAA,CAAoB,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA,EAAG;AACxD,QAAA,MAAM,IAAI,MAAM,kBAAA,CAAmB,IAAA,CAAK,IAAA,EAAM,OAAO,IAAI,CAAA;AACzD,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAChB,QAAA,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG;AAAA,MACrB;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,kBAAA,EAAoB;AACvB,MAAA,GAAG;AACD,QAAA,MAAM,IAAI,MAAM,kBAAA,CAAmB,IAAA,CAAK,IAAA,EAAM,OAAO,IAAI,CAAA;AACzD,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAChB,QAAA,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG;AAAA,MACrB,SAAS,MAAM,mBAAA,CAAoB,IAAA,CAAK,IAAA,EAAM,KAAW,CAAA;AACzD,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,gBAAA,EAAkB;AACrB,MAAA,MAAM,MAAO,MAAM,mBAAA,CAAoB,IAAA,CAAK,KAAA,EAAO,KAAW,CAAA;AAI9D,MAAA,IAAI,GAAA,IAAO,IAAA,IAAQ,OAAO,GAAA,KAAQ,QAAA,EAAU;AAC5C,MAAA,KAAA,MAAW,OAAO,GAAA,EAAK;AACrB,QAAA,IAAI,IAAA,CAAK,IAAA,CAAK,IAAA,KAAS,YAAA,OAAmB,oCAAoC,CAAA;AAC9E,QAAA,oBAAA,CAAqB,IAAA,CAAK,KAAK,IAAI,CAAA;AACnC,QAAA,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA,GAAI,GAAA;AAC/B,QAAA,MAAM,IAAI,MAAM,kBAAA,CAAmB,IAAA,CAAK,IAAA,EAAM,OAAO,IAAI,CAAA;AACzD,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAChB,QAAA,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG;AAAA,MACrB;AACA,MAAA;AAAA,IACF;AAAA,IAEA,KAAK,gBAAA,EAAkB;AACrB,MAAA,MAAM,MAAM,MAAM,mBAAA,CAAoB,IAAA,CAAK,KAAA,EAAO,KAAW,CAAA;AAC7D,MAAA,IAAI,GAAA,IAAO,IAAA,IAAQ,OAAO,GAAA,KAAQ,QAAA,IAAY,EAAE,MAAA,CAAO,QAAA,IAAY,MAAA,CAAO,GAAG,CAAA,CAAA,EAAI;AAC/E,QAAA;AAAA,MACF;AACA,MAAA,KAAA,MAAW,SAAS,GAAA,EAA0B;AAC5C,QAAA,IAAI,IAAA,CAAK,IAAA,CAAK,IAAA,KAAS,YAAA,EAAc;AACnC,UAAA,oBAAA,CAAqB,IAAA,CAAK,KAAK,IAAI,CAAA;AACnC,UAAA,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,IAAI,CAAA,GAAI,KAAA;AAAA,QACjC,CAAA,MAAA,IAAW,IAAA,CAAK,IAAA,CAAK,IAAA,KAAS,qBAAA,EAAuB;AACnD,UAAA,MAAM,CAAA,GAAI,IAAA,CAAK,IAAA,CAAK,YAAA,CAAa,CAAC,CAAA;AAClC,UAAA,IAAI,CAAC,CAAA,IAAK,CAAA,CAAE,GAAG,IAAA,KAAS,YAAA,OAAmB,gCAAgC,CAAA;AAC3E,UAAA,oBAAA,CAAqB,CAAA,CAAE,GAAG,IAAI,CAAA;AAC9B,UAAA,KAAA,CAAM,MAAA,CAAO,CAAA,CAAE,EAAA,CAAG,IAAI,CAAA,GAAI,KAAA;AAAA,QAC5B,CAAA,MAAO;AACL,UAAA,IAAA,CAAK,2CAA2C,CAAA;AAAA,QAClD;AACA,QAAA,MAAM,IAAI,MAAM,kBAAA,CAAmB,IAAA,CAAK,IAAA,EAAM,OAAO,IAAI,CAAA;AACzD,QAAA,IAAI,QAAA,CAAS,CAAC,CAAA,EAAG,OAAO,CAAA;AACxB,QAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG;AAChB,QAAA,IAAI,UAAA,CAAW,CAAC,CAAA,EAAG;AAAA,MACrB;AACA,MAAA;AAAA,IACF;AAAA,IAEA;AACE,MAAA,IAAA,CAAK,yBAAA,GAA4B,KAAK,IAAI,CAAA;AAAA;AAEhD;;;AC1NO,SAAS,aACd,GAAA,EACA,GAAA,EACA,MAAA,EACA,GAAA,EACA,aAAa,EAAA,EACJ;AACT,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,mBAAS,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AACjC,IAAA,MAAA,CAAO,MAAA,GAAS,MAAA;AAChB,IAAA,MAAA,CAAO,GAAA,GAAM,GAAA;AACb,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,GAAA,EAAK,MAAM,CAAA;AACrC,IAAA,OAAO,cAAA,CAAe,GAAA,EAAK,KAAA,EAAO,EAAE,YAAY,CAAA;AAAA,EAClD,SAAS,GAAA,EAAK;AACZ,IAAA,QAAA,CAAS,SAAA,CAAU,UAAU,GAAA,EAAK;AAAA,MAChC,OAAO,UAAA,IAAc;AAAA,KACtB,CAAA;AACD,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAEO,SAAS,YACd,UAAA,EACA,GAAA,EACA,MAAA,EACA,GAAA,EACA,aAAa,EAAA,EACJ;AACT,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,mBAAS,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AACjC,IAAA,MAAA,CAAO,MAAA,GAAS,MAAA;AAChB,IAAA,MAAA,CAAO,GAAA,GAAM,GAAA;AACb,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,GAAA,EAAK,MAAM,CAAA;AACrC,IAAA,MAAM,IAAI,aAAA,CAAc,UAAA,EAAY,KAAA,EAAO,EAAE,YAAY,CAAA;AACzD,IAAA,OAAO,CAAA,IAAK,CAAA,CAAE,CAAA,KAAM,UAAA,GAAa,EAAE,CAAA,GAAI,CAAA;AAAA,EACzC,SAAS,GAAA,EAAK;AACZ,IAAA,QAAA,CAAS,SAAA,CAAU,UAAU,GAAA,EAAK;AAAA,MAChC,OAAO,UAAA,IAAc;AAAA,KACtB,CAAA;AACD,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAEA,eAAsB,iBACpB,UAAA,EACA,GAAA,EACA,MAAA,EACA,GAAA,EACA,aAAa,EAAA,EACK;AAClB,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,mBAAS,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA;AACjC,IAAA,MAAA,CAAO,MAAA,GAAS,MAAA;AAChB,IAAA,MAAA,CAAO,GAAA,GAAM,GAAA;AACb,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,GAAA,EAAK,MAAM,CAAA;AACrC,IAAA,MAAM,CAAA,GAAK,MAAM,kBAAA,CAAmB,UAAA,EAAY,KAAA,EAAO;AAAA,MACrD;AAAA,KACD,CAAA;AACD,IAAA,OAAO,CAAA,IAAK,CAAA,CAAE,CAAA,KAAM,UAAA,GAAa,EAAE,CAAA,GAAI,CAAA;AAAA,EACzC,SAAS,GAAA,EAAK;AACZ,IAAA,QAAA,CAAS,SAAA,CAAU,UAAU,GAAA,EAAK;AAAA,MAChC,OAAO,UAAA,IAAc;AAAA,KACtB,CAAA;AACD,IAAA,OAAO,MAAA;AAAA,EACT;AACF;;;ACrEO,SAAS,QAAQ,IAAA,EAAwB;AAC9C,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,QAAA,CAAS,MAAY,EAAA,EAAsB;AACzD,EAAA,CAAC,QAAQ,IAAI,CAAA,CAAE,iBAAiB,EAAC,EAAG,KAAK,EAAE,CAAA;AAC7C;AAEO,SAAS,QAAQ,IAAA,EAAkB;AACxC,EAAA,OAAA,CAAQ,IAAI,CAAA,CAAE,YAAA,EAAc,QAAQ,CAAC,EAAA,KAAO,IAAI,CAAA;AAChD,EAAA,IAAI,IAAA,CAAK,YAAY,KAAA,CAAM,IAAA,CAAK,KAAK,UAAU,CAAA,CAAE,QAAQ,OAAO,CAAA;AAClE;AAEO,SAAS,UAAA,CAAW,MAAY,EAAA,EAA8B;AACnE,EAAA,MAAM,MAAA,GAAS,OAAO,EAAE,CAAA;AACxB,EAAA,QAAA,CAAS,IAAA,EAAM,MAAM,MAAA,CAAO,IAAA,EAAM,CAAA;AAClC,EAAA,OAAO,MAAA;AACT;;;ACnBO,SAAS,eAAe,GAAA,EAAsB;AACnD,EAAA,IAAI,CAAC,KAAK,OAAO,EAAA;AACjB,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,EAAA,IAAI,KAAA,CAAM,QAAQ,GAAG,CAAA;AACnB,IAAA,OAAO,GAAA,CAAI,OAAO,OAAO,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,GAAG,CAAA;AACzD,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA;AACjB,IAAA,OAAO,MAAA,CAAO,IAAA,CAAK,GAA8B,CAAA,CAC9C,MAAA,CAAO,CAAC,CAAA,KAAO,GAAA,CAAgC,CAAC,CAAC,CAAA,CACjD,IAAA,CAAK,GAAG,CAAA;AACb,EAAA,OAAO,EAAA;AACT;AAEO,SAAS,eAAe,GAAA,EAAgD;AAC7E,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAC;AAClB,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,EAAU,OAAO,GAAA;AACpC,EAAA,OAAO,EAAC;AACV;AAEO,SAAS,gBAAgB,EAAA,EAAsB;AACpD,EAAA,OACE,EAAA,CAAG,QAAA,KAAa,CAAA,KACf,EAAA,CAAG,OAAA,KAAY,WACd,EAAA,CAAG,OAAA,KAAY,UAAA,IACf,EAAA,CAAG,OAAA,KAAY,QAAA,CAAA;AAErB;AAEO,SAAS,gBAAgB,EAAA,EAAsB;AACpD,EAAA,OAAO,EAAA,CAAG,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA;AAChC;AAEO,SAAS,SAAA,CAAU,GAAA,EAAc,IAAA,mBAAO,IAAI,KAAY,EAAS;AACtE,EAAA,GAAA,GAAM,MAAM,GAAG,CAAA;AACf,EAAA,IAAI,CAAC,OAAO,OAAO,GAAA,KAAQ,YAAY,IAAA,CAAK,GAAA,CAAI,GAAG,CAAA,EAAG;AACtD,EAAA,IAAA,CAAK,IAAI,GAAG,CAAA;AACZ,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,EAAG;AACtB,IAAA,GAAA,CAAI,MAAA;AACJ,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,MAAA,EAAQ,KAAK,SAAA,CAAU,GAAA,CAAI,CAAC,CAAA,EAAG,IAAI,CAAA;AAAA,EAC7D,CAAA,MAAO;AACL,IAAA,MAAM,MAAA,GAAS,GAAA;AACf,IAAA,KAAA,MAAW,KAAK,MAAA,EAAQ,SAAA,CAAU,MAAA,CAAO,CAAC,GAAG,IAAI,CAAA;AAAA,EACnD;AACF;AAEO,SAAS,aAAa,GAAA,EAAuB;AAClD,EAAA,GAAA,GAAM,MAAM,GAAG,CAAA;AACf,EAAA,IAAI,MAAM,OAAA,CAAQ,GAAG,CAAA,EAAG,OAAO,IAAI,KAAA,EAAM;AACzC,EAAA,IAAI,OAAO,OAAO,GAAA,KAAQ,UAAU,OAAO,EAAE,GAAI,GAAA,EAAe;AAChE,EAAA,OAAO,GAAA;AACT;;;AChDO,SAAS,oBAAoB,GAAA,EAGxB;AACV,EAAA,MAAM,SAA8B,EAAC;AACrC,EAAA,IAAI,IAAA,GAAO,CAAA;AAEX,EAAA,GAAA,CAAI,OAAA,CAAQ,YAAA,EAAc,CAAC,CAAA,EAAG,MAAc,GAAA,KAAgB;AAC1D,IAAA,IAAI,GAAA,GAAM,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,GAAA,CAAI,KAAA,CAAM,IAAA,EAAM,GAAG,GAAG,CAAA;AAClE,IAAA,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA,EAAG,MAAA,EAAQ,KAAK,WAAA,CAAY,IAAI,GAAG,CAAA;AACjD,IAAA,IAAA,GAAO,MAAM,CAAA,CAAE,MAAA;AACf,IAAA,OAAO,CAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,IAAI,IAAA,GAAO,GAAA,CAAI,MAAA,EAAQ,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAG,GAAA,CAAI,KAAA,CAAM,IAAI,GAAG,CAAA;AAEpE,EAAA,OAAO,SAAS,MAAA,CAAO,GAAA,EAAK,GAAA,EAAK;AAC/B,IAAA,IAAI,GAAA,GAAM,EAAA;AACV,IAAA,KAAA,MAAW,OAAO,MAAA,EAAQ;AACxB,MAAA,IAAI,GAAA,CAAI,CAAA,KAAM,MAAA,EAAQ,GAAA,IAAO,GAAA,CAAI,CAAA;AAAA,WAC5B;AACH,QAAA,MAAM,IAAI,YAAA,CAAa,GAAA,CAAI,KAAK,GAAA,EAAK,MAAA,EAAW,KAAK,MAAM,CAAA;AAC3D,QAAA,GAAA,IAAO,CAAA,IAAK,IAAA,GAAO,EAAA,GAAK,MAAA,CAAO,CAAC,CAAA;AAAA,MAClC;AAAA,IACF;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AACF;;;AC7BO,SAAS,aAAa,CAAA,EAAmB;AAC9C,EAAA,OAAO,CAAA,CAAE,QAAQ,WAAA,EAAa,CAAC,GAAG,CAAA,KAAc,CAAA,CAAE,aAAa,CAAA;AACjE;AAEO,SAAS,cAAc,MAAA,EAAwD;AACpF,EAAA,MAAM,GAAA,GAAA,CAAO,MAAA,IAAU,EAAA,EAAI,IAAA,EAAK;AAEhC,EAAA,MAAM,QAAQ,GAAA,CAAI,KAAA;AAAA,IAChB;AAAA,GACF;AACA,EAAA,IAAI,KAAA,EAAO,OAAO,EAAE,IAAA,EAAM,KAAA,CAAM,CAAC,CAAA,EAAI,KAAA,EAAO,KAAA,CAAM,CAAC,CAAA,EAAG;AAEtD,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,KAAA,CAAM,sBAAsB,CAAA;AAC/C,EAAA,IAAI,MAAA,SAAe,EAAE,IAAA,EAAM,OAAO,CAAC,CAAA,EAAI,OAAO,IAAA,EAAK;AAEnD,EAAA,MAAM,IAAI,KAAA;AAAA,IACR;AAAA,GACF;AACF;AAGO,SAAS,kBAAA,CACd,QACA,UAAA,EACe;AACf,EAAA,IAAI,MAAA,KAAW,IAAA,IAAQ,MAAA,KAAW,MAAA,EAAW;AAC3C,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AACzB,IAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,MAAW;AAAA,MACnC,KAAA;AAAA,MACA,GAAA,EAAK,KAAA;AAAA,MACL,KAAA,EAAO,aAAa,EAAE,CAAC,UAAU,GAAG,KAAA,KAAU;AAAC,KACjD,CAAE,CAAA;AAAA,EACJ;AAEA,EAAA,IAAI,OAAO,MAAA,KAAW,QAAA,IAAY,CAAC,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA,EAAG;AACvD,IAAA,MAAM,QAAuB,EAAC;AAC9B,IAAA,MAAM,IAAI,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,MAAM,CAAC,CAAA;AACrC,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,EAAA,EAAK;AAC1B,MAAA,KAAA,CAAM,IAAA,CAAK;AAAA,QACT,KAAA,EAAO,CAAA;AAAA,QACP,GAAA,EAAK,CAAA;AAAA,QACL,KAAA,EAAO,aAAa,EAAE,CAAC,UAAU,GAAG,CAAA,KAAM;AAAC,OAC5C,CAAA;AAAA,IACH;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,IAAA,OAAO,MAAM,IAAA,CAAK,MAAM,EAAE,GAAA,CAAI,CAAC,MAAM,KAAA,MAAW;AAAA,MAC9C,KAAA,EAAO,IAAA;AAAA,MACP,GAAA,EAAK,KAAA;AAAA,MACL,KAAA,EAAO,aAAa,EAAE,CAAC,UAAU,GAAG,KAAA,KAAU;AAAC,KACjD,CAAE,CAAA;AAAA,EACJ;AAEA,EAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,IAAA,MAAM,MAAA,GAAS,MAAA;AACf,IAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA;AAC/B,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,EAAK,KAAA,MAAW;AAAA,MAC/B,KAAA,EAAO,OAAO,GAAG,CAAA;AAAA,MACjB,GAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,GAAA;AAAA,QACN,GAAI,aAAa,EAAE,CAAC,UAAU,GAAG,KAAA,KAAU;AAAC;AAC9C,KACF,CAAE,CAAA;AAAA,EACJ;AAEA,EAAA,OAAO;AAAA,IACL;AAAA,MACE,KAAA,EAAO,MAAA;AAAA,MACP,GAAA,EAAK,CAAA;AAAA,MACL,KAAA,EAAO,aAAa,EAAE,CAAC,UAAU,GAAG,CAAA,KAAM;AAAC;AAC7C,GACF;AACF;;;AC9EA,IAAM,eAAA,uBAAsB,OAAA,EAAuC;AAE5D,SAAS,gBAAgB,EAAA,EAAkC;AAChE,EAAA,MAAM,GAAA,uBAAU,GAAA,EAAoB;AACpC,EAAA,IAAI,KAAA,GAAuB,EAAA;AAE3B,EAAA,OAAO,KAAA,IAAS,KAAA,KAAU,MAAA,CAAO,SAAA,EAAW;AAC1C,IAAA,KAAA,MAAW,CAAA,IAAK,MAAA,CAAO,mBAAA,CAAoB,KAAK,CAAA,EAAG;AACjD,MAAA,GAAA,CAAI,GAAA,CAAI,CAAA,CAAE,WAAA,EAAY,EAAG,CAAC,CAAA;AAAA,IAC5B;AACA,IAAA,KAAA,GAAQ,MAAA,CAAO,eAAe,KAAK,CAAA;AAAA,EACrC;AACA,EAAA,OAAO,GAAA;AACT;AAEO,SAAS,kBAAA,CAAmB,IAAa,GAAA,EAAqB;AACnE,EAAA,IAAI,IAAI,QAAA,CAAS,GAAG,CAAA,EAAG,OAAO,aAAa,GAAG,CAAA;AAE9C,EAAA,MAAM,KAAA,GAAQ,IAAI,WAAA,EAAY;AAC9B,EAAA,IAAI,GAAA,GAAM,eAAA,CAAgB,GAAA,CAAI,EAAA,CAAG,WAAuB,CAAA;AACxD,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,GAAA,GAAM,gBAAgB,EAAE,CAAA;AACxB,IAAA,eAAA,CAAgB,GAAA,CAAI,EAAA,CAAG,WAAA,EAAyB,GAAG,CAAA;AAAA,EACrD;AAEA,EAAA,OAAO,GAAA,CAAI,GAAA,CAAI,KAAK,CAAA,IAAK,GAAA;AAC3B;;;AC5BO,IAAM,YAAA,GAAe,CAAA;AACrB,IAAM,SAAA,GAAY,CAAA;AAGlB,SAAS,UAAU,IAAA,EAA6B;AACrD,EAAA,OAAO,KAAK,QAAA,KAAa,YAAA;AAC3B;AAEO,SAAS,WAAW,IAAA,EAA0B;AACnD,EAAA,OAAO,KAAK,QAAA,KAAa,SAAA;AAC3B;AAUO,SAAS,SAAS,IAAA,EAAgC;AACvD,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,QAAQ,EAAA,EAAqB;AAC3C,EAAA,OAAO,EAAA,CAAG,QAAQ,WAAA,EAAY;AAChC;AAEO,SAAS,UAAU,EAAA,EAAqB;AAC7C,EAAA,OAAA,CAAQ,EAAA,CAAG,YAAA,CAAa,MAAM,CAAA,IAAK,QAAQ,WAAA,EAAY;AACzD;AAOO,SAAS,WAAW,EAAA,EAAwB;AACjD,EAAA,OAAO,EAAA;AACT;AAEO,SAAS,aAAA,CAAcC,MAAW,IAAA,EAAuB;AAC9D,EAAA,MAAM,MAAMA,IAAAA,CAAI,aAAA;AAChB,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,MAAM,iCAAiC,CAAA;AAAA,EACnD;AACA,EAAA,OAAO,GAAA,CAAI,cAAc,IAAI,CAAA;AAC/B;;;AC/CO,IAAM,sCAAsB,IAAI,GAAA,CAAI,CAAC,MAAA,EAAQ,QAAA,EAAU,MAAM,CAAC,CAAA;AAWrE,SAAS,wBAAwB,KAAA,EAA2B;AAC1D,EAAA,OAAO,KAAA,CAAM,OAAO,CAAC,CAAA,KAAM,CAAC,mBAAA,CAAoB,GAAA,CAAI,CAAC,CAAC,CAAA;AACxD;AAGO,SAAS,iBAAA,CACd,UACA,KAAA,EACwB;AACxB,EAAA,MAAM,GAAA,GAAM,MAAM,IAAA,EAAK;AACvB,EAAA,IAAI,CAAC,GAAA,IAAO,CAAC,oBAAA,CAAqB,IAAA,CAAK,GAAG,CAAA,EAAG;AAC3C,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,aAAa,WAAA,EAAa;AAC5B,IAAA,OAAO,EAAE,KAAK,GAAA,EAAK,IAAA,EAAM,WAAW,EAAC,EAAG,gBAAA,EAAkB,EAAC,EAAE;AAAA,EAC/D;AAEA,EAAA,IAAI,IAAA,GAAsB,IAAA;AAC1B,EAAA,IAAI,QAAA,CAAS,UAAA,CAAW,YAAY,CAAA,EAAG;AACrC,IAAA,IAAA,GAAO,QAAA,CAAS,KAAA,CAAM,YAAA,CAAa,MAAM,CAAA;AAAA,EAC3C,CAAA,MAAA,IAAW,QAAA,CAAS,UAAA,CAAW,YAAY,CAAA,EAAG;AAC5C,IAAA,IAAA,GAAO,QAAA,CAAS,KAAA,CAAM,YAAA,CAAa,MAAM,CAAA;AAAA,EAC3C,CAAA,MAAO;AACL,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,EAAE,KAAK,GAAA,EAAK,IAAA,EAAM,WAAW,EAAC,EAAG,gBAAA,EAAkB,EAAC,EAAE;AAAA,EAC/D;AAEA,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,OAAO,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,GAAS,CAAC,CAAA;AACxD,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,OAAO,EAAE,KAAK,GAAA,EAAK,IAAA,EAAM,WAAW,EAAC,EAAG,gBAAA,EAAkB,EAAC,EAAE;AAAA,EAC/D;AAEA,EAAA,MAAM,KAAA,GAAQ,MAAM,CAAC,CAAA;AACrB,EAAA,IAAI,mBAAA,CAAoB,GAAA,CAAI,KAAK,CAAA,EAAG;AAClC,IAAA,OAAO;AAAA,MACL,GAAA;AAAA,MACA,GAAA,EAAK,IAAA;AAAA,MACL,SAAA,EAAW,2BAA2B,KAAK,CAAA;AAAA,MAC3C,gBAAA,EAAkB,wBAAwB,KAAK;AAAA,KACjD;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,GAAA;AAAA,IACA,GAAA,EAAK,KAAA;AAAA,IACL,SAAA,EAAW,0BAAA,CAA2B,KAAA,CAAM,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,IACpD,gBAAA,EAAkB,uBAAA,CAAwB,KAAA,CAAM,KAAA,CAAM,CAAC,CAAC;AAAA,GAC1D;AACF;AAEO,SAAS,eAAe,QAAA,EAA2B;AACxD,EAAA,OACE,QAAA,KAAa,eACb,QAAA,CAAS,UAAA,CAAW,YAAY,CAAA,IAChC,QAAA,CAAS,WAAW,YAAY,CAAA;AAEpC;AAEO,SAAS,2BAA2B,SAAA,EAA+B;AACxE,EAAA,MAAM,MAAgB,EAAC;AACvB,EAAA,KAAA,MAAW,KAAK,SAAA,EAAW;AACzB,IAAA,IAAI,mBAAA,CAAoB,IAAI,CAAC,CAAA,IAAK,CAAC,GAAA,CAAI,QAAA,CAAS,CAAC,CAAA,EAAG;AAClD,MAAA,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA,IACZ;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT;AAGO,SAAS,qBAAA,CACd,OACA,SAAA,EACS;AACT,EAAA,MAAM,IAAA,GAAO,2BAA2B,SAAS,CAAA;AACjD,EAAA,IAAI,CAAA,GAAI,KAAA;AAER,EAAA,IAAI,KAAK,QAAA,CAAS,MAAM,CAAA,IAAK,OAAO,MAAM,QAAA,EAAU;AAClD,IAAA,CAAA,GAAI,EAAE,IAAA,EAAK;AAAA,EACb;AAEA,EAAA,IAAI,IAAA,CAAK,QAAA,CAAS,QAAQ,CAAA,EAAG;AAC3B,IAAA,IAAI,CAAA,KAAM,EAAA,IAAM,CAAA,IAAK,IAAA,EAAM;AACzB,MAAA,OAAO,EAAA;AAAA,IACT;AACA,IAAA,MAAM,IAAI,OAAO,CAAA,KAAM,QAAA,GAAW,CAAA,GAAI,OAAO,CAAC,CAAA;AAC9C,IAAA,OAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAA,GAAI,CAAA,GAAI,CAAA;AAAA,EAC/B;AAEA,EAAA,OAAO,CAAA;AACT;AAGO,SAAS,oBAAA,CACd,OACA,SAAA,EACS;AACT,EAAA,MAAM,CAAA,GAAI,KAAA,IAAS,IAAA,GAAO,MAAA,GAAY,KAAA;AACtC,EAAA,MAAM,IAAA,GAAO,2BAA2B,SAAS,CAAA;AACjD,EAAA,IAAI,KAAK,QAAA,CAAS,QAAQ,KAAK,CAAA,KAAM,EAAA,IAAM,KAAK,IAAA,EAAM;AACpD,IAAA,MAAM,IAAI,OAAO,CAAA,KAAM,QAAA,GAAW,CAAA,GAAI,OAAO,CAAC,CAAA;AAC9C,IAAA,OAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAA,GAAI,CAAA,GAAI,CAAA;AAAA,EAC/B;AACA,EAAA,OAAO,CAAA;AACT;;;AClHO,SAAS,aACd,EAAA,EACA,GAAA,EACA,GAAA,EACA,SAAA,GAAsB,EAAC,EACc;AACrC,EAAA,MAAM,IAAA,GAAO,2BAA2B,SAAS,CAAA;AACjD,EAAA,MAAM,KAAA,GAAQ,WAAW,EAAE,CAAA;AAC3B,EAAA,MAAM,GAAA,GAAM,QAAQ,EAAE,CAAA;AACtB,EAAA,MAAM,IAAA,GAAO,UAAU,EAAE,CAAA;AAEzB,EAAA,IAAI,GAAA,KAAQ,OAAA,IAAW,IAAA,KAAS,UAAA,EAAY;AAC1C,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,QAAA;AAAA,MACP,MAAM,MAAM;AACV,QAAA,KAAA,CAAM,UAAU,OAAA,CAAQ,KAAA,CAAM,GAAA,CAAI,GAAG,CAAC,CAAC,CAAA;AAAA,MACzC;AAAA,KACF;AAAA,EACF;AAEA,EAAA,IAAI,GAAA,KAAQ,OAAA,IAAW,IAAA,KAAS,OAAA,EAAS;AACvC,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,QAAA;AAAA,MACP,MAAM,MAAM;AACV,QAAA,MAAM,CAAA,GAAI,KAAA,CAAM,GAAA,CAAI,GAAG,CAAC,CAAA;AACxB,QAAA,KAAA,CAAM,OAAA,GAAU,KAAA,CAAM,KAAA,KAAU,MAAA,CAAO,KAAK,EAAE,CAAA;AAAA,MAChD;AAAA,KACF;AAAA,EACF;AAEA,EAAA,IAAI,QAAQ,QAAA,EAAU;AACpB,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,QAAA;AAAA,MACP,MAAM,MAAM;AACV,QAAA,MAAM,CAAA,GAAI,KAAA,CAAM,GAAA,CAAI,GAAG,CAAC,CAAA;AACxB,QAAA,KAAA,CAAM,KAAA,GAAQ,CAAA,IAAK,IAAA,GAAO,EAAA,GAAK,OAAO,CAAC,CAAA;AAAA,MACzC;AAAA,KACF;AAAA,EACF;AAEA,EAAA,IAAI,GAAA,KAAQ,OAAA,IAAW,GAAA,KAAQ,UAAA,EAAY;AACzC,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,QAAA,CAAS,MAAM,IAAI,QAAA,GAAW,OAAA;AACjD,IAAA,OAAO;AAAA,MACL,KAAA;AAAA,MACA,MAAM,MAAM;AACV,QAAA,MAAM,CAAA,GAAI,KAAA,CAAM,GAAA,CAAI,GAAG,CAAC,CAAA;AACxB,QAAA,MAAM,GAAA,GAAM,CAAA,IAAK,IAAA,GAAO,EAAA,GAAK,OAAO,CAAC,CAAA;AACrC,QAAA,IAAI,KAAA,CAAM,KAAA,KAAU,GAAA,EAAK,KAAA,CAAM,KAAA,GAAQ,GAAA;AAAA,MACzC;AAAA,KACF;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,KAAA,EAAO,OAAA,EAAS,IAAA,EAAM,MAAM;AAAA,EAAC,CAAA,EAAE;AAC1C;AAEO,SAAS,eAAe,EAAA,EAAsB;AACnD,EAAA,MAAM,KAAA,GAAQ,WAAW,EAAE,CAAA;AAC3B,EAAA,IAAI,OAAA,CAAQ,EAAE,CAAA,KAAM,OAAA,IAAW,UAAU,EAAE,CAAA,KAAM,UAAA,EAAY,OAAO,KAAA,CAAM,OAAA;AAC1E,EAAA,IAAI,OAAA,CAAQ,EAAE,CAAA,KAAM,OAAA,IAAW,UAAU,EAAE,CAAA,KAAM,OAAA,EAAS,OAAO,KAAA,CAAM,KAAA;AACvE,EAAA,IAAI,OAAA,CAAQ,EAAE,CAAA,KAAM,QAAA,SAAiB,KAAA,CAAM,KAAA;AAC3C,EAAA,IAAI,OAAA,CAAQ,EAAE,CAAA,KAAM,OAAA,IAAW,QAAQ,EAAE,CAAA,KAAM,UAAA,EAAY,OAAO,KAAA,CAAM,KAAA;AACxE,EAAA,OAAO,MAAA;AACT;AAEO,SAAS,gBACd,GAAA,EACA,GAAA,EACA,IACA,KAAA,EACA,SAAA,GAAsB,EAAC,EACjB;AACN,EAAA,MAAM,KAAA,GAAQ,WAAW,EAAE,CAAA;AAC3B,EAAA,IAAI,OAAA,CAAQ,EAAE,CAAA,KAAM,OAAA,IAAW,SAAA,CAAU,EAAE,CAAA,KAAM,OAAA,IAAW,CAAC,KAAA,CAAM,OAAA,EAAS;AAC1E,IAAA;AAAA,EACF;AACA,EAAA,MAAM,OAAA,GAAU,qBAAA,CAAsB,KAAA,EAAO,SAAS,CAAA;AACtD,EAAA,MAAM,GAAA,GAAM,IAAI,GAAG,CAAA;AACnB,EAAA,IAAI,KAAA,CAAM,GAAG,CAAA,EAAG,GAAA,CAAI,KAAA,GAAQ,OAAA;AAAA,OACvB,GAAA,CAAI,GAAG,CAAA,GAAI,OAAA;AAClB;;;ACvEO,SAAS,wBAAA,CACd,IACA,GAAA,EACqC;AACrC,EAAA,MAAM,IAAA,GAAO,GAAA,GAAM,kBAAA,CAAmB,EAAA,EAAI,GAAG,CAAA,GAAI,YAAA;AACjD,EAAA,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,CAAA,OAAA,EAAU,IAAI,CAAA,CAAA,EAAG;AAC7C;AAEO,SAAS,mBACd,EAAA,EACA,GAAA,EACA,KACA,GAAA,EACA,SAAA,GAAsB,EAAC,EACH;AACpB,EAAA,MAAM,IAAA,GAAO,2BAA2B,SAAS,CAAA;AACjD,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAU,GAAI,wBAAA,CAAyB,IAAI,GAAG,CAAA;AAC5D,EAAA,MAAM,MAAA,GAAS,EAAA;AAEf,EAAA,MAAM,OAAO,MAAM;AACjB,IAAA,MAAA,CAAO,IAAI,IAAI,oBAAA,CAAqB,KAAA,CAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAA;AAAA,EAC3D,CAAA;AAEA,EAAA,MAAM,QAAA,GAAW,CAAC,CAAA,KAAa;AAC7B,IAAA,MAAM,EAAA,GAAK,CAAA;AACX,IAAA,IAAI,MAAe,EAAA,CAAG,MAAA;AACtB,IAAA,IAAI,GAAA,KAAQ,MAAA,IAAa,CAAA,CAAE,MAAA,EAAQ;AACjC,MAAA,GAAA,GAAO,CAAA,CAAE,OAA8C,IAAI,CAAA;AAAA,IAC7D;AACA,IAAA,eAAA,CAAgB,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,IAAI,CAAA;AAAA,EACzC,CAAA;AAEA,EAAA,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,QAAA,EAAS;AAC3C;;;ACpCA,IAAM,cAAA,uBAAqB,GAAA,CAAI;AAAA,EAC7B,SAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAC,CAAA;AAED,IAAM,SAAA,GAAY,cAAA;AAGX,SAAS,mBAAmB,SAAA,EAAsC;AACvE,EAAA,MAAM,OAAgC,EAAC;AACvC,EAAA,IAAI,SAAA,CAAU,QAAA,CAAS,SAAS,CAAA,OAAQ,OAAA,GAAU,IAAA;AAClD,EAAA,IAAI,SAAA,CAAU,QAAA,CAAS,SAAS,CAAA,OAAQ,OAAA,GAAU,IAAA;AAClD,EAAA,OAAO,OAAO,IAAA,CAAK,IAAI,CAAA,CAAE,MAAA,GAAS,IAAI,IAAA,GAAO,KAAA;AAC/C;AAEA,IAAM,SAAA,GAAoC;AAAA,EACxC,KAAA,EAAO,OAAA;AAAA,EACP,GAAA,EAAK,KAAA;AAAA,EACL,MAAA,EAAQ,QAAA;AAAA,EACR,GAAA,EAAK,QAAA;AAAA,EACL,GAAA,EAAK,QAAA;AAAA,EACL,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,GAAA;AAAA,EACP,EAAA,EAAI,SAAA;AAAA,EACJ,IAAA,EAAM,WAAA;AAAA,EACN,IAAA,EAAM,WAAA;AAAA,EACN,KAAA,EAAO;AACT,CAAA;AAEA,SAAS,kBAAkB,GAAA,EAAsB;AAC/C,EAAA,IAAI,SAAA,CAAU,GAAA,CAAI,GAAG,CAAA,EAAG,OAAO,KAAA;AAC/B,EAAA,OAAO,IAAI,MAAA,IAAU,CAAA;AACvB;AAEO,SAAS,gBAAgB,SAAA,EAA+B;AAC7D,EAAA,OAAO,SAAA,CAAU,OAAO,iBAAiB,CAAA;AAC3C;AAEA,IAAM,qBAAA,uBAA4B,GAAA,CAAI;AAAA,EACpC,GAAG,cAAA;AAAA,EACH,GAAG,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAAA,EACxB,MAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAC,CAAA;AAGM,SAAS,yBAAyB,SAAA,EAA+B;AACtE,EAAA,OAAO,SAAA,CAAU,MAAA,CAAO,CAAC,CAAA,KAAM;AAC7B,IAAA,IAAI,qBAAA,CAAsB,GAAA,CAAI,CAAC,CAAA,EAAG,OAAO,KAAA;AACzC,IAAA,IAAI,UAAA,CAAW,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,KAAA;AAC/B,IAAA,OAAO,IAAA;AAAA,EACT,CAAC,CAAA;AACH;AAEA,SAAS,oBAAA,CAAqB,GAAkB,GAAA,EAAsB;AACpE,EAAA,QAAQ,GAAA;AAAK,IACX,KAAK,MAAA;AACH,MAAA,OAAO,CAAA,CAAE,OAAA;AAAA,IACX,KAAK,KAAA;AACH,MAAA,OAAO,CAAA,CAAE,MAAA;AAAA,IACX,KAAK,OAAA;AACH,MAAA,OAAO,CAAA,CAAE,QAAA;AAAA,IACX,KAAK,MAAA;AACH,MAAA,OAAO,CAAA,CAAE,OAAA;AAAA,IACX;AACE,MAAA,OAAO,KAAA;AAAA;AAEb;AAEA,SAAS,kBAAA,CAAmB,GAAkB,GAAA,EAAsB;AAClE,EAAA,IAAI,CAAC,QAAQ,KAAA,EAAO,OAAA,EAAS,MAAM,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,EAAG;AAClD,IAAA,OAAO,oBAAA,CAAqB,GAAG,GAAG,CAAA;AAAA,EACpC;AACA,EAAA,MAAM,KAAA,GAAQ,IAAI,WAAA,EAAY;AAC9B,EAAA,MAAM,IAAA,GAAO,SAAA,CAAU,KAAK,CAAA,IAAK,GAAA;AACjC,EAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,IAAA,EAAM,OAAO,IAAA;AAC3B,EAAA,IAAI,CAAA,CAAE,IAAA,KAAS,IAAA,EAAM,OAAO,IAAA;AAC5B,EAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,IAAK,CAAA,CAAE,GAAA,CAAI,aAAY,KAAM,IAAA,CAAK,WAAA,EAAY,EAAG,OAAO,IAAA;AAC5E,EAAA,IAAI,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA,IAAK,CAAA,CAAE,IAAA,KAAS,CAAA,GAAA,EAAM,IAAA,CAAK,WAAA,EAAa,CAAA,CAAA,EAAI,OAAO,IAAA;AAC3E,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,iBAAiB,QAAA,EAAuC;AACtE,EAAA,IAAI,CAAC,SAAS,UAAA,CAAW,IAAI,KAAK,QAAA,CAAS,MAAA,IAAU,GAAG,OAAO,IAAA;AAC/D,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,KAAA,CAAM,CAAC,CAAA;AAC9B,EAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,EAAC,EAAG,MAAM,EAAA,EAAG;AAC1C;AAEO,SAAS,gBAAA,CAAiB,UAAkB,IAAA,EAAmC;AACpF,EAAA,IAAI,CAAC,QAAA,CAAS,UAAA,CAAW,GAAG,GAAG,OAAO,IAAA;AACtC,EAAA,MAAM,QAAQ,QAAA,CAAS,KAAA,CAAM,CAAC,CAAA,CAAE,MAAM,GAAG,CAAA;AACzC,EAAA,MAAM,KAAA,GAAQ,MAAM,CAAC,CAAA;AACrB,EAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AACnB,EAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,KAAA,CAAM,CAAC,GAAG,IAAA,EAAK;AAClD;AAEO,SAAS,gBAAA,CACd,OAAA,EACA,SAAA,EACA,IAAA,EACoB;AACpB,EAAA,IAAI,OAAA,GAAU,OAAA;AACd,EAAA,IAAI,SAAA,CAAU,QAAA,CAAS,MAAM,CAAA,EAAG;AAC9B,IAAA,OAAA,qBAAY,EAAA,KAAO;AACjB,MAAA,IAAI,MAAA,GAAS,KAAA;AACb,MAAA,OAAO,CAAC,CAAA,KAAa;AACnB,QAAA,IAAI,MAAA,EAAQ;AACZ,QAAA,MAAA,GAAS,IAAA;AACT,QAAA,EAAA,CAAG,CAAC,CAAA;AAAA,MACN,CAAA;AAAA,IACF,GAAG,OAAO,CAAA;AAAA,EACZ;AACA,EAAA,MAAM,OAAA,GAAU,gBAAgB,SAAS,CAAA;AAEzC,EAAA,OAAO,CAAC,CAAA,KAAa;AACnB,IAAA,IAAI,UAAU,QAAA,CAAS,MAAM,CAAA,IAAK,CAAA,CAAE,WAAW,IAAA,EAAM;AACrD,IAAA,IAAI,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA,EAAG;AAC/B,MAAA,IAAI,CAAA,CAAE,WAAW,IAAA,EAAM;AACvB,MAAA,IAAI,CAAA,YAAa,UAAA,IAAc,CAAA,CAAE,MAAA,KAAW,CAAA,EAAG;AAAA,IACjD;AACA,IAAA,IAAI,OAAA,CAAQ,MAAA,GAAS,CAAA,IAAK,KAAA,IAAS,CAAA,EAAG;AACpC,MAAA,MAAM,EAAA,GAAK,CAAA;AACX,MAAA,KAAA,MAAW,OAAO,OAAA,EAAS;AACzB,QAAA,IAAI,CAAC,kBAAA,CAAmB,EAAA,EAAI,GAAG,CAAA,EAAG;AAAA,MACpC;AAAA,IACF;AACA,IAAA,IAAI,SAAA,CAAU,QAAA,CAAS,SAAS,CAAA,IAAK,cAAA,EAAe;AACpD,IAAA,IAAI,SAAA,CAAU,QAAA,CAAS,MAAM,CAAA,IAAK,eAAA,EAAgB;AAClD,IAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,EACX,CAAA;AACF;;;ACpJA,IAAI,IAAA,GAAoB,QAAA;AAEjB,SAAS,cAAA,GAA8B;AAC5C,EAAA,OAAO,IAAA;AACT;AAMO,SAAS,gBAAA,CAAoB,MAAmB,EAAA,EAAgB;AACrE,EAAA,MAAM,IAAA,GAAO,IAAA;AACb,EAAA,IAAA,GAAO,IAAA;AACP,EAAA,IAAI;AACF,IAAA,OAAO,EAAA,EAAG;AAAA,EACZ,CAAA,SAAE;AACA,IAAA,IAAA,GAAO,IAAA;AAAA,EACT;AACF;;;ACyBA,SAAS,yBAAA,CACP,IAAA,EACA,OAAA,EACA,KAAA,EACM;AACN,EAAA,KAAA,MAAW,GAAA,IAAO,wBAAA,CAAyB,OAAA,CAAQ,SAAS,CAAA,EAAG;AAC7D,IAAA,QAAA;AAAA,MACE,SAAA,CAAU,sBAAA;AAAA,MACV,EAAE,GAAA,EAAK,KAAA,EAAO,OAAA,CAAQ,KAAA,EAAM;AAAA,MAC5B,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA;AAAM,KACzB;AAAA,EACF;AACF;AAEA,SAAS,UAAA,CACP,IAAA,EACA,GAAA,EACA,IAAA,EACA,OACA,CAAA,EACM;AACN,EAAA,MAAM,OAAA,GAAU,YAAY,IAAI,CAAA;AAChC,EAAA,MAAM,gBAAA,GAAmB,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA;AAC9C,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA,KAAK,iBAAiB,OAAA,EAAS,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,KAAK,CAAA,CAAE,KAAA;AAAA,MAAM,CAAC,GAAA,KACzD,QAAA,CAAS,SAAA,CAAU,eAAA,EAAiB,KAAK,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA,EAAO;AAAA,KACnE;AAAA,EACF,CAAA,MAAO;AACL,IAAA,WAAA,CAAY,OAAA,EAAS,GAAA,EAAK,CAAA,EAAG,IAAA,EAAM,KAAK,CAAA;AAAA,EAC1C;AACF;AAEA,SAAS,eAAA,CAAgB,MAAY,GAAA,EAAoC;AACvE,EAAA,MAAM,GAAA,GAAM,KAAK,SAAA,IAAa,EAAA;AAC9B,EAAA,IAAI,CAAC,GAAA,CAAI,QAAA,CAAS,IAAI,CAAA,EAAG;AACzB,EAAA,MAAM,MAAA,GAAS,oBAAoB,GAAG,CAAA;AACtC,EAAA,YAAA,CAAa,MAAM,MAAM;AACvB,IAAA,IAAA,CAAK,SAAA,GAAY,MAAA,CAAO,GAAA,EAAK,IAAA,CAAK,aAAa,CAAA;AAAA,EACjD,CAAC,CAAA;AACH;AAEA,SAAS,eAAA,CAAgB,QAAoB,GAAA,EAAoC;AAC/E,EAAA,KAAA,MAAW,KAAA,IAAS,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,UAAU,CAAA,EAAG;AACjD,IAAA,IAAI,UAAA,CAAW,KAAK,CAAA,EAAG;AACrB,MAAA,eAAA,CAAgB,OAAO,GAAG,CAAA;AAAA,IAC5B,CAAA,MAAA,IAAW,SAAA,CAAU,KAAK,CAAA,EAAG;AAC3B,MAAA,WAAA,CAAY,OAAO,GAAG,CAAA;AAAA,IACxB;AAAA,EACF;AACF;AAEA,SAAS,YAAA,CACP,IAAA,EACA,EAAA,EACA,IAAA,EACM;AACN,EAAA,IAAI,cAAA,OAAqB,KAAA,EAAO;AAC9B,IAAA,EAAA,EAAG;AACH,IAAA;AAAA,EACF;AACA,EAAA,IAAmB,SAAA,CAAU,IAAI,KAAK,IAAA,CAAK,YAAA,CAAa,UAAU,CAAA,EAAI;AACpE,IAAA,IAAI,SAAA,CAAU,IAAI,CAAA,EAAG,IAAA,CAAK,gBAAgB,UAAU,CAAA;AACpD,IAAA,MAAM,MAAA,GAAS,OAAO,MAAM;AAC1B,MAAA,EAAA,EAAG;AACH,MAAA,MAAA,CAAO,IAAA,EAAK;AAAA,IACd,CAAC,CAAA;AACD,IAAA,QAAA,CAAS,IAAA,EAAM,MAAM,MAAA,CAAO,IAAA,EAAM,CAAA;AAClC,IAAA;AAAA,EACF;AACA,EAAA,UAAA,CAAW,MAAM,EAAE,CAAA;AACrB;AAEO,SAAS,WAAA,CAAY,MAAe,GAAA,EAA8B;AACvE,EAAA,IAAI,CAAC,SAAA,CAAU,IAAI,CAAA,EAAG;AAEtB,EAAA,MAAM,QAAA,GAAW,CAAC,QAAA,EAAU,MAAA,EAAQ,MAAM,CAAA;AAC1C,EAAA,MAAM,YAAA,GAAe,CAAC,aAAA,EAAe,WAAA,EAAa,WAAW,CAAA;AAC7D,EAAA,MAAM,UAAA,GAAa,CAAC,UAAA,EAAY,QAAA,EAAU,QAAQ,CAAA;AAElD,EAAA,MAAM,UAAA,GAAa,CAAC,EAAA,EAAa,KAAA,KAC/B,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAM,EAAA,CAAG,YAAA,CAAa,CAAC,CAAC,CAAA;AACtC,EAAA,MAAM,UAAA,GAAa,CAAC,EAAA,EAAa,KAAA,KAAoB;AACnD,IAAA,KAAA,MAAW,CAAA,IAAK,KAAA;AACd,MAAA,IAAI,EAAA,CAAG,aAAa,CAAC,CAAA,SAAU,EAAA,CAAG,YAAA,CAAa,CAAC,CAAA,IAAK,EAAA;AACvD,IAAA,OAAO,EAAA;AAAA,EACT,CAAA;AACA,EAAA,MAAM,aAAA,GAAgB,CAAC,EAAA,EAAa,KAAA,KAClC,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,KAAM,EAAA,CAAG,eAAA,CAAgB,CAAC,CAAC,CAAA;AAE5C,EAAA,MAAM,iBAAA,GAAoB,CAAC,CAAA,KAAgC;AACzD,IAAA,IAAI,GAAA,GAAM,CAAA;AACV,IAAA,OAAO,GAAA,EAAK;AACV,MAAA,IAAI,GAAA,CAAI,aAAa,CAAA,EAAG;AACtB,QAAA,GAAA,GAAM,GAAA,CAAI,WAAA;AACV,QAAA;AAAA,MACF;AACA,MAAA,IAAI,GAAA,CAAI,aAAa,CAAA,IAAK,CAAA,CAAE,IAAI,SAAA,IAAa,EAAA,EAAI,MAAK,EAAG;AACvD,QAAA,GAAA,GAAM,GAAA,CAAI,WAAA;AACV,QAAA;AAAA,MACF;AACA,MAAA,OAAO,GAAA;AAAA,IACT;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,IAAI,UAAA,CAAW,IAAA,EAAM,QAAQ,CAAA,EAAG;AAC9B,IAAA,MAAM,SAAS,IAAA,CAAK,UAAA;AACpB,IAAA,IAAI,CAAC,MAAA,EAAQ;AAEb,IAAA,MAAM,MAAA,GAAS,aAAA,CAAc,IAAA,EAAM,UAAU,CAAA;AAC7C,IAAA,MAAA,CAAO,YAAA,CAAa,QAAQ,IAAI,CAAA;AAEhC,IAAA,MAAM,QAAuB,EAAC;AAC9B,IAAA,IAAI,GAAA,GAAmB,IAAA;AAEvB,IAAA,OAAO,GAAA,EAAK;AACV,MAAA,GAAA,GAAM,kBAAkB,GAAG,CAAA;AAC3B,MAAA,IAAI,CAAC,GAAA,IAAO,GAAA,CAAI,QAAA,KAAa,CAAA,EAAG;AAChC,MAAA,MAAM,KAAA,GAAQ,GAAA;AAEd,MAAA,MAAM,IAAA,GAAO,UAAA,CAAW,KAAA,EAAO,QAAQ,CAAA;AACvC,MAAA,MAAM,QAAA,GAAW,UAAA,CAAW,KAAA,EAAO,YAAY,CAAA;AAC/C,MAAA,MAAM,MAAA,GAAS,UAAA,CAAW,KAAA,EAAO,UAAU,CAAA;AAE3C,MAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,QAAA,IAAY,CAAC,MAAA,EAAQ;AACnC,MAAA,IAAI,KAAA,CAAM,MAAA,GAAS,CAAA,IAAK,IAAA,EAAM;AAC9B,MAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,IAAK,CAAC,IAAA,EAAM;AACjC,MAAA,IAAI,KAAA,CAAM,SAAS,CAAA,IAAK,KAAA,CAAM,MAAM,MAAA,GAAS,CAAC,EAAG,MAAA,EAAQ;AAEzD,MAAA,MAAM,MAAA,GAAS,SACX,EAAA,GACA,UAAA,CAAW,OAAO,QAAQ,CAAA,IAAK,UAAA,CAAW,KAAA,EAAO,YAAY,CAAA;AACjE,MAAA,MAAM,MAAA,GAAS,MAAA,GAAS,WAAA,CAAY,MAAM,CAAA,GAAI,IAAA;AAE9C,MAAA,MAAM,GAAA,GAAM,KAAA,CAAM,SAAA,CAAU,IAAI,CAAA;AAChC,MAAA,IAAI,SAAA,CAAU,GAAG,CAAA,EAAG;AAClB,QAAA,aAAA,CAAc,KAAK,QAAQ,CAAA;AAC3B,QAAA,aAAA,CAAc,KAAK,YAAY,CAAA;AAC/B,QAAA,aAAA,CAAc,KAAK,UAAU,CAAA;AAAA,MAC/B;AAEA,MAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,CAAC,CAAC,MAAA,EAAQ,MAAA,EAAQ,KAAK,CAAA;AAE5C,MAAA,MAAM,OAAO,KAAA,CAAM,WAAA;AACnB,MAAA,KAAA,CAAM,MAAA,EAAO;AACb,MAAA,GAAA,GAAM,IAAA;AAAA,IACR;AAEA,IAAA,IAAI,QAAA,GAAgC,IAAA;AAEpC,IAAA,YAAA,CAAa,QAAQ,MAAM;AACzB,MAAA,IAAI,OAAA,GAAU,KAAA;AAEd,MAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,QAAA,MAAM,KACJ,CAAC,OAAA,KACA,IAAA,CAAK,MAAA,IACH,KAAK,MAAA,IAAU,IAAA,IACd,CAAC,CAAC,aAAa,IAAA,CAAK,MAAA,EAAQ,GAAA,EAAK,MAAA,EAAW,QAAQ,IAAI,CAAA,CAAA;AAC9D,QAAA,IAAI,CAAC,EAAA,EAAI;AAET,QAAA,OAAA,GAAU,IAAA;AAEV,QAAA,IAAI,CAAC,QAAA,IAAY,QAAA,CAAS,UAAA,KAAe,KAAK,GAAA,EAAK;AACjD,UAAA,IAAI,QAAA,EAAU;AACZ,YAAA,OAAA,CAAQ,QAAQ,CAAA;AAChB,YAAA,QAAA,CAAS,MAAA,EAAO;AAChB,YAAA,QAAA,GAAW,IAAA;AAAA,UACb;AACA,UAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,IAAI,CAAA;AAClC,UAAA,EAAA,CAAG,aAAa,IAAA,CAAK,GAAA;AACrB,UAAA,MAAA,CAAO,YAAA,CAAa,EAAA,EAAI,MAAA,CAAO,WAAW,CAAA;AAC1C,UAAA,WAAA,CAAY,IAAI,GAAG,CAAA;AACnB,UAAA,QAAA,GAAW,EAAA;AAAA,QACb;AACA,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,CAAC,WAAW,QAAA,EAAU;AACxB,QAAA,OAAA,CAAQ,QAAQ,CAAA;AAChB,QAAA,QAAA,CAAS,MAAA,EAAO;AAChB,QAAA,QAAA,GAAW,IAAA;AAAA,MACb;AAAA,IACF,CAAC,CAAA;AAED,IAAA;AAAA,EACF;AAEA,EAAA,IAAI,IAAA,CAAK,YAAA,CAAa,SAAS,CAAA,EAAG;AAChC,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,YAAA,CAAa,SAAS,CAAA,IAAK,EAAA;AAC5C,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,YAAA,CAAa,SAAS,CAAA;AAE1C,IAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,KAAA,CAAM,UAAU,CAAA;AAClC,IAAA,MAAM,GAAA,GAAM,KAAA,CAAM,CAAC,CAAA,IAAK,EAAA;AACxB,IAAA,MAAM,MAAM,KAAA,CAAM,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA,IAAK,EAAA;AAE3C,IAAA,IAAI,KAAA;AACJ,IAAA,IAAI,UAAA;AACJ,IAAA,IAAI;AACF,MAAA,CAAC,EAAE,IAAA,EAAM,KAAA,EAAO,OAAO,UAAA,EAAW,GAAI,cAAc,GAAG,CAAA;AAAA,IACzD,CAAA,CAAA,MAAQ;AACN,MAAA,IAAA;AAAA,QACE,SAAA,CAAU,kBAAA;AAAA,QACV,EAAE,MAAM,GAAA,EAAI;AAAA,QACZ,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA,EAAO,SAAA;AAAU,OACpC;AACA,MAAA;AAAA,IACF;AACA,IAAA,MAAM,OAAA,GAAU,WAAA,CAAY,GAAA,CAAI,IAAA,EAAM,CAAA;AACtC,IAAA,MAAM,MAAA,GAAS,MAAA,GAAS,WAAA,CAAY,MAAM,CAAA,GAAI,IAAA;AAE9C,IAAA,IAAI,CAAC,MAAA,IAAU,cAAA,EAAe,KAAM,KAAA,EAAO;AACzC,MAAA,QAAA,CAAS,SAAA,CAAU,qBAAqB,EAAC,EAAG,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA,EAAO,SAAA,EAAW,CAAA;AAAA,IACjF;AAEA,IAAA,MAAM,SAAS,IAAA,CAAK,UAAA;AACpB,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,MAAA,GAAS,aAAA,CAAc,IAAA,EAAM,SAAS,CAAA;AAC5C,IAAA,MAAA,CAAO,YAAA,CAAa,QAAQ,IAAI,CAAA;AAEhC,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA;AACpC,IAAA,QAAA,CAAS,gBAAgB,SAAS,CAAA;AAClC,IAAA,QAAA,CAAS,gBAAgB,SAAS,CAAA;AAElC,IAAA,MAAM,MAAA,uBAAa,GAAA,EAAuB;AAE1C,IAAA,MAAM,UAAU,MAAM;AACpB,MAAA,MAAM,cAAc,YAAA,CAAa,OAAA,EAAS,GAAA,EAAK,MAAA,EAAW,QAAQ,KAAK,CAAA;AACvE,MAAA,MAAM,KAAA,GAAQ,kBAAA,CAAmB,WAAA,EAAa,UAAU,CAAA;AACxD,MAAA,MAAM,IAAA,uBAAW,GAAA,EAAa;AAC9B,MAAA,MAAM,aAAa,MAAA,CAAO,UAAA;AAC1B,MAAA,IAAI,CAAC,UAAA,EAAY;AAEjB,MAAA,IAAI,eAAiC,MAAA,CAAO,WAAA;AAE5C,MAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,KAAA,CAAM,QAAQ,GAAA,EAAA,EAAO;AAC3C,QAAA,MAAM,IAAA,GAAO,MAAM,GAAG,CAAA;AACtB,QAAA,IAAI,CAAC,IAAA,EAAM;AAEX,QAAA,MAAM,YAAY,IAAA,CAAK,KAAA;AACvB,QAAA,MAAM,QAAQ,IAAA,CAAK,KAAA;AAEnB,QAAA,IAAI,QAAA;AACJ,QAAA,IAAI,MAAA,EAAQ;AACV,UAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,GAAG,CAAA;AAChC,UAAA,MAAA,CAAO,KAAK,CAAA,GAAI,SAAA;AAChB,UAAA,MAAA,CAAO,KAAA,GAAQ,SAAA;AACf,UAAA,MAAA,CAAO,MAAA,GAAS,GAAA;AAChB,UAAA,IAAI,UAAA,EAAY,MAAA,CAAO,UAAU,CAAA,GAAI,GAAA;AACrC,UAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,KAAK,CAAA;AAC3B,UAAA,QAAA,GAAW,YAAA,CAAa,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAW,QAAQ,SAAS,CAAA;AAAA,QACtE,CAAA,MAAO;AACL,UAAA,QAAA,GAAW,IAAA,CAAK,GAAA;AAAA,QAClB;AAEA,QAAA,IAAI,KAAA,GAAQ,MAAA,CAAO,GAAA,CAAI,QAAQ,CAAA;AAE/B,QAAA,IAAI,CAAC,KAAA,EAAO;AACV,UAAA,MAAM,EAAA,GAAK,QAAA,CAAS,SAAA,CAAU,IAAI,CAAA;AAClC,UAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,GAAG,CAAA;AAChC,UAAA,MAAA,CAAO,KAAK,CAAA,GAAI,SAAA;AAChB,UAAA,MAAA,CAAO,KAAA,GAAQ,SAAA;AACf,UAAA,MAAA,CAAO,MAAA,GAAS,GAAA;AAChB,UAAA,IAAI,UAAA,EAAY,MAAA,CAAO,UAAU,CAAA,GAAI,GAAA;AACrC,UAAA,MAAA,CAAO,MAAA,CAAO,QAAQ,KAAK,CAAA;AAE3B,UAAA,WAAA,CAAY,IAAI,MAAM,CAAA;AACtB,UAAA,KAAA,GAAQ,EAAE,EAAA,EAAI,GAAA,EAAK,MAAA,EAAO;AAC1B,UAAA,MAAA,CAAO,GAAA,CAAI,UAAU,KAAK,CAAA;AAAA,QAC5B,CAAA,MAAO;AACL,UAAA,KAAA,CAAM,GAAA,CAAI,KAAK,CAAA,GAAI,SAAA;AACnB,UAAA,KAAA,CAAM,IAAI,KAAA,GAAQ,SAAA;AAClB,UAAA,KAAA,CAAM,IAAI,MAAA,GAAS,GAAA;AACnB,UAAA,IAAI,UAAA,EAAY,KAAA,CAAM,GAAA,CAAI,UAAU,CAAA,GAAI,GAAA;AACxC,UAAA,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,GAAA,EAAK,KAAK,CAAA;AAAA,QAChC;AAEA,QAAA,IACE,MAAM,EAAA,CAAG,UAAA,KAAe,cACxB,KAAA,CAAM,EAAA,CAAG,gBAAgB,YAAA,EACzB;AACA,UAAA,UAAA,CAAW,YAAA,CAAa,KAAA,CAAM,EAAA,EAAI,YAAY,CAAA;AAAA,QAChD;AACA,QAAA,YAAA,GAAe,MAAM,EAAA,CAAG,WAAA;AACxB,QAAA,IAAA,CAAK,IAAI,QAAQ,CAAA;AAAA,MACnB;AAEA,MAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,EAAO,CAAA,KAAM;AAC3B,QAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAG;AAChB,UAAA,IAAI,cAAA,EAAe,KAAM,KAAA,EAAO,OAAA,CAAQ,MAAM,EAAE,CAAA;AAChD,UAAA,KAAA,CAAM,EAAA,CAAG,UAAA,EAAY,WAAA,CAAY,KAAA,CAAM,EAAE,CAAA;AACzC,UAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,QACjB;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,IAAI,cAAA,OAAqB,KAAA,EAAO;AAC9B,MAAA,OAAA,EAAQ;AAAA,IACV,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,QAAQ,OAAO,CAAA;AAAA,IAC5B;AAEA,IAAA;AAAA,EACF;AAGA,EAAA,IAAI,IAAA,CAAK,YAAA,CAAa,SAAS,CAAA,EAAG;AAChC,IAAA,MAAM,CAAA,GAAI,IAAA,CAAK,YAAA,CAAa,SAAS,CAAA;AACrC,IAAA,IAAI,CAAC,CAAA,EAAG;AACR,IAAA,IAAA,CAAK,gBAAgB,SAAS,CAAA;AAC9B,IAAA,MAAM,IAAA,GAAO,IAAI,CAAC,CAAA;AAClB,IAAA,IAAI,KAAA,CAAM,IAAI,CAAA,EAAG,IAAA,CAAK,KAAA,GAAQ,IAAA;AAAA,SACzB,GAAA,CAAI,CAAC,CAAA,GAAI,GAAA,CAAI,IAAI,CAAA;AACtB,IAAA,QAAA,CAAS,MAAM,MAAM;AACnB,MAAA,MAAM,GAAA,GAAM,IAAI,CAAC,CAAA;AACjB,MAAA,IAAI,KAAA,CAAM,GAAG,CAAA,EAAG,GAAA,CAAI,KAAA,GAAQ,IAAA;AAAA,IAC9B,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,IAAA,CAAK,YAAA,CAAa,UAAU,CAAA,EAAG;AACjC,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,YAAA,CAAa,UAAU,CAAA,IAAK,EAAA;AAC7C,IAAA,IAAA,CAAK,gBAAgB,UAAU,CAAA;AAC/B,IAAA,MAAM,MAAA,GAAS,YAAY,GAAG,CAAA;AAC9B,IAAA,MAAM,IAAA,GAAO,SAAS,IAAI,CAAA;AAC1B,IAAA,YAAA,CAAa,MAAM,MAAM;AACvB,MAAA,IAAA,CAAK,KAAA,CAAM,UAAU,YAAA,CAAa,MAAA,EAAQ,KAAK,MAAA,EAAW,IAAA,EAAM,MAAM,CAAA,GAAI,EAAA,GAAK,MAAA;AAAA,IACjF,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,IAAA,CAAK,YAAA,CAAa,UAAU,CAAA,EAAG;AACjC,IAAA,QAAA,CAAS,SAAA,CAAU,iBAAiB,EAAC,EAAG,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA,EAAO,UAAA,EAAY,CAAA;AAC5E,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,YAAA,CAAa,UAAU,CAAA,IAAK,EAAA;AAC7C,IAAA,IAAA,CAAK,gBAAgB,UAAU,CAAA;AAC/B,IAAA,MAAM,MAAA,GAAS,YAAY,GAAG,CAAA;AAC9B,IAAA,MAAM,MAAA,GAAS,SAAS,IAAI,CAAA;AAC5B,IAAA,YAAA,CAAa,MAAM,MAAM;AACvB,MAAA,MAAM,MAAM,YAAA,CAAa,MAAA,EAAQ,GAAA,EAAK,MAAA,EAAW,MAAM,MAAM,CAAA;AAC7D,MAAA,MAAA,CAAO,SAAA,GAAY,GAAA,IAAO,IAAA,GAAO,EAAA,GAAK,OAAO,GAAG,CAAA;AAAA,IAClD,CAAC,CAAA;AAAA,EACH;AAGA,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,UAAU,CAAA;AAExC,EAAA,MAAM,UAAA,GAAa,MAAM,MAAA,CAAO,CAAC,MAAM,cAAA,CAAe,CAAA,CAAE,IAAI,CAAC,CAAA;AAC7D,EAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AACzB,IAAA,QAAA,CAAS,UAAU,eAAA,EAAiB,IAAI,EAAE,OAAA,EAAS,MAAM,CAAA;AAAA,EAC3D;AACA,EAAA,MAAM,SAAA,GAAY,WAAW,CAAC,CAAA;AAC9B,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,MAAM,OAAA,GAAU,iBAAA,CAAkB,SAAA,CAAU,IAAA,EAAM,UAAU,KAAK,CAAA;AACjE,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,IAAA;AAAA,QACE,SAAA,CAAU,iBAAA;AAAA,QACV,EAAE,KAAA,EAAO,SAAA,CAAU,KAAA,EAAM;AAAA,QACzB,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA,EAAO,UAAU,IAAA;AAAK,OACzC;AAAA,IACF,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,eAAA,CAAgB,UAAU,IAAI,CAAA;AACnC,MAAA,MAAM,EAAE,GAAA,EAAK,GAAA,EAAK,SAAA,EAAW,kBAAiB,GAAI,OAAA;AAElD,MAAA,IAAI,gBAAA,CAAiB,SAAS,CAAA,EAAG;AAC/B,QAAA,QAAA;AAAA,UACE,SAAA,CAAU,sBAAA;AAAA,UACV,EAAE,IAAA,EAAM,gBAAA,CAAiB,IAAA,CAAK,GAAG,CAAA,EAAE;AAAA,UACnC,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA,EAAO,UAAU,IAAA;AAAK,SACzC;AAAA,MACF;AAEA,MAAA,IAAI,eAAA,CAAgB,IAAI,CAAA,EAAG;AACzB,QAAA,MAAM,SAAS,kBAAA,CAAmB,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK,KAAK,SAAS,CAAA;AAChE,QAAA,YAAA,CAAa,IAAA,EAAM,MAAM,MAAA,CAAO,IAAA,EAAM,CAAA;AACtC,QAAA,IAAA,CAAK,gBAAA,CAAiB,MAAA,CAAO,SAAA,EAAW,MAAA,CAAO,QAAQ,CAAA;AACvD,QAAA,QAAA;AAAA,UAAS,IAAA;AAAA,UAAM,MACb,IAAA,CAAK,mBAAA,CAAoB,MAAA,CAAO,SAAA,EAAW,OAAO,QAAQ;AAAA,SAC5D;AAAA,MACF,CAAA,MAAO;AACL,QAAA,IAAI,OAAO,IAAA,EAAM;AACf,UAAA,IAAA;AAAA,YACE,SAAA,CAAU,mBAAA;AAAA,YACV,EAAE,GAAA,EAAK,GAAA,EAAK,KAAK,OAAA,CAAQ,WAAA,IAAe,GAAA,EAAI;AAAA,YAC5C,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA,EAAO,UAAU,IAAA;AAAK,WACzC;AAAA,QACF;AACA,QAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,IAAA,EAAM,GAAA,EAAK,KAAK,SAAS,CAAA;AACpD,QAAA,YAAA,CAAa,IAAA,EAAM,MAAM,KAAA,CAAM,IAAA,EAAM,CAAA;AACrC,QAAA,MAAM,CAAA,GAAI,MACR,eAAA,CAAgB,GAAA,EAAK,KAAK,IAAA,EAAM,cAAA,CAAe,IAAI,CAAA,EAAG,SAAS,CAAA;AACjE,QAAA,IAAA,CAAK,gBAAA,CAAiB,KAAA,CAAM,KAAA,EAAO,CAAC,CAAA;AACpC,QAAA,QAAA,CAAS,MAAM,MAAM,IAAA,CAAK,oBAAoB,KAAA,CAAM,KAAA,EAAO,CAAC,CAAC,CAAA;AAAA,MAC/D;AAAA,IACF;AAAA,EACF;AACA,EAAA,MAAM,QAAA,GAAW,CAAC,IAAA,KAAiB,IAAA,CAAK,WAAW,IAAI,CAAA,IAAK,KAAK,MAAA,GAAS,CAAA;AAE1E,EAAA,KAAA,MAAW,KAAK,KAAA,EAAO;AACrB,IAAA,MAAM,WAAW,CAAA,CAAE,IAAA;AACnB,IAAA,MAAM,OAAO,CAAA,CAAE,KAAA;AAEf,IAAA,IAAI,QAAA,CAAS,QAAQ,CAAA,EAAG;AACtB,MAAA,MAAM,OAAA,GAAU,iBAAiB,QAAQ,CAAA;AACzC,MAAA,IAAI,CAAC,OAAA,EAAS;AACd,MAAA,IAAA,CAAK,gBAAgB,QAAQ,CAAA;AAC7B,MAAA,yBAAA,CAA0B,IAAA,EAAM,OAAA,EAAS,CAAA,EAAA,EAAK,OAAA,CAAQ,KAAK,CAAA,CAAE,CAAA;AAC7D,MAAA,MAAM,IAAA,GAAO,kBAAA,CAAmB,OAAA,CAAQ,SAAS,CAAA;AACjD,MAAA,MAAM,OAAA,GAAU,gBAAA;AAAA,QACd,CAAC,CAAA,KAAa,UAAA,CAAW,IAAA,EAAM,GAAA,EAAK,MAAM,CAAA,EAAA,EAAK,OAAA,CAAQ,KAAK,CAAA,CAAA,EAAI,CAAC,CAAA;AAAA,QACjE,OAAA,CAAQ,SAAA;AAAA,QACR;AAAA,OACF;AACA,MAAA,IAAA,CAAK,gBAAA,CAAiB,OAAA,CAAQ,KAAA,EAAO,OAAA,EAAS,IAAI,CAAA;AAClD,MAAA,QAAA,CAAS,IAAA,EAAM,MAAM,IAAA,CAAK,mBAAA,CAAoB,QAAQ,KAAA,EAAO,OAAA,EAAS,IAAI,CAAC,CAAA;AAC3E,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,QAAA,CAAS,UAAA,CAAW,GAAG,CAAA,EAAG;AAC5B,MAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,QAAA,EAAU,IAAI,CAAA;AAC/C,MAAA,IAAI,CAAC,OAAA,EAAS;AACd,MAAA,IAAA,CAAK,gBAAgB,QAAQ,CAAA;AAC7B,MAAA,yBAAA,CAA0B,IAAA,EAAM,OAAA,EAAS,CAAA,CAAA,EAAI,OAAA,CAAQ,KAAK,CAAA,CAAE,CAAA;AAC5D,MAAA,MAAM,IAAA,GAAO,kBAAA,CAAmB,OAAA,CAAQ,SAAS,CAAA;AACjD,MAAA,MAAM,OAAA,GAAU,gBAAA;AAAA,QACd,CAAC,CAAA,KAAa,UAAA,CAAW,IAAA,EAAM,GAAA,EAAK,MAAM,CAAA,CAAA,EAAI,OAAA,CAAQ,KAAK,CAAA,CAAA,EAAI,CAAC,CAAA;AAAA,QAChE,OAAA,CAAQ,SAAA;AAAA,QACR;AAAA,OACF;AACA,MAAA,IAAA,CAAK,gBAAA,CAAiB,OAAA,CAAQ,KAAA,EAAO,OAAA,EAAS,IAAI,CAAA;AAClD,MAAA,QAAA,CAAS,IAAA,EAAM,MAAM,IAAA,CAAK,mBAAA,CAAoB,QAAQ,KAAA,EAAO,OAAA,EAAS,IAAI,CAAC,CAAA;AAC3E,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,QAAA,KAAa,QAAA,IAAY,QAAA,KAAa,gBAAA,EAAkB;AAC1D,MAAA,IAAA,CAAK,gBAAgB,QAAQ,CAAA;AAE7B,MAAA,MAAM,MAAA,GAAS,YAAY,IAAI,CAAA;AAC/B,MAAA,MAAM,IAAA,GAAO,SAAS,IAAI,CAAA;AAC1B,MAAA,MAAM,OACJ,IAAA,CAAK,OAAA,CAAQ,cAAc,IAAA,CAAK,OAAA,CAAQ,YAAY,IAAA,CAAK,SAAA,CAAA;AAE3D,MAAA,YAAA,CAAa,MAAM,MAAM;AACvB,QAAA,MAAM,MAAM,YAAA,CAAa,MAAA,EAAQ,GAAA,EAAK,MAAA,EAAW,MAAM,OAAO,CAAA;AAC9D,QAAA,MAAM,GAAA,GAAM,eAAe,GAAG,CAAA;AAC9B,QAAA,IAAA,CAAK,SAAA,GAAY,IAAA,IAAQ,GAAA,GAAM,GAAA,GAAM,GAAA,GAAM,EAAA,CAAA;AAAA,MAC7C,CAAC,CAAA;AACD,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,QAAA,KAAa,QAAA,IAAY,QAAA,KAAa,gBAAA,EAAkB;AAC1D,MAAA,IAAA,CAAK,gBAAgB,QAAQ,CAAA;AAE7B,MAAA,MAAM,MAAA,GAAS,YAAY,IAAI,CAAA;AAC/B,MAAA,MAAM,IAAA,GAAO,SAAS,IAAI,CAAA;AAC1B,MAAA,YAAA,CAAa,MAAM,MAAM;AACvB,QAAA,MAAM,GAAA,GAAM,cAAA;AAAA,UACV,YAAA,CAAa,MAAA,EAAQ,GAAA,EAAK,MAAA,EAAW,MAAM,OAAO;AAAA,SACpD;AACA,QAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,EAAU,IAAA,CAAK,MAAM,OAAA,GAAU,GAAA;AAAA,aAC7C;AACH,UAAA,MAAM,QAAA,GAAW,GAAA;AACjB,UAAA,KAAA,MAAW,CAAA,IAAK,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,EAAG;AACrC,YAAA,IAAA,CAAK,MAAM,WAAA,CAAY,CAAA,EAAG,OAAO,QAAA,CAAS,CAAC,CAAC,CAAC,CAAA;AAAA,UAC/C;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AACD,MAAA;AAAA,IACF;AAEA,IAAA,IACE,SAAS,UAAA,CAAW,WAAW,KAC/B,QAAA,KAAa,gBAAA,IACb,aAAa,gBAAA,EACb;AACA,MAAA,IAAA,CAAK,gBAAgB,QAAQ,CAAA;AAE7B,MAAA,IAAI,OAAO,QAAA,CAAS,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IAAK,EAAA;AACrC,MAAA,IAAA,GAAO,kBAAA,CAAmB,MAAM,IAAI,CAAA;AACpC,MAAA,MAAM,MAAA,GAAS,YAAY,IAAI,CAAA;AAE/B,MAAA,IAAI,IAAA,KAAS,OAAA,IAAW,eAAA,CAAgB,IAAI,CAAA,EAAG;AAC7C,QAAA,YAAA,CAAa,MAAM,MAAM;AACvB,UAAA,MAAM,IAAI,YAAA,CAAa,MAAA,EAAQ,GAAA,EAAK,MAAA,EAAW,MAAM,YAAY,CAAA;AACjE,UAAA,MAAM,GAAA,GAAM,CAAA,IAAK,IAAA,GAAO,EAAA,GAAK,OAAO,CAAC,CAAA;AACrC,UAAA,IACE,OAAO,QAAA,KAAa,WAAA,IACpB,QAAA,CAAS,aAAA,KAAkB,IAAA;AAE3B,YAAA;AACF,UAAA,IAAK,IAAA,CAA0B,KAAA,KAAU,GAAA,EAAM,KAA0B,KAAA,GAAQ,GAAA;AAAA,QACnF,CAAC,CAAA;AAAA,MACH,CAAA,MAAO;AACL,QAAA,YAAA,CAAa,MAAM,MAAM;AACvB,UAAA,IAAI,CAAA,GAAI,aAAa,MAAA,EAAQ,GAAA,EAAK,QAAW,IAAA,EAAM,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAE,CAAA;AAEjE,UAAA,IACE,eAAA,CAAgB,IAAI,CAAA,KACnB,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,IAAM,CAAA,IAAK,OAAO,CAAA,KAAM,QAAA,CAAA,EACxC;AACA,YAAA,SAAA,CAAU,CAAC,CAAA;AACX,YAAA,CAAA,GAAI,aAAa,CAAC,CAAA;AAAA,UACpB;AAEA,UAAC,IAAA,CAA4C,IAAI,CAAA,GAAI,CAAA;AAAA,QACvD,CAAC,CAAA;AAAA,MACH;AACA,MAAA;AAAA,IACF;AAAA,EACF;AAEA,EAAA,eAAA,CAAgB,MAAM,GAAG,CAAA;AAC3B;AAEO,SAAS,WAAA,CAAY,MAAkB,GAAA,EAA8B;AAC1E,EAAA,IAAI,SAAA,CAAU,IAAI,CAAA,EAAG;AACnB,IAAA,WAAA,CAAY,MAAM,GAAG,CAAA;AACrB,IAAA;AAAA,EACF;AACA,EAAA,eAAA,CAAgB,MAAM,GAAG,CAAA;AAC3B;;;AChjBO,SAAS,KAAA,CAAM,MAA4B,GAAA,EAA8B;AAC9E,EAAA,WAAA,CAAY,MAAM,GAAG,CAAA;AACrB,EAAA,OAAO,GAAA;AACT;;;ACHO,SAAS,SAAA,CAAU,OAAA,GAAmC,EAAC,EAA4B;AACxF,EAAA,MAAM,GAAA,GAAM,QAAA,CAAS,EAAE,CAAA;AACvB,EAAA,IAAI,WAAW,OAAO,OAAA,KAAY,UAAU,MAAA,CAAO,MAAA,CAAO,KAAK,OAAO,CAAA;AACtE,EAAA,OAAO,GAAA;AACT;;;ACEO,SAAS,iBAAiB,KAAA,EAA+B;AAC9D,EAAA,OAAO;AAAA,IACL,KAAA,CAAM,MAAA,EAAQ,OAAA,GAAU,EAAC,EAAG;AAC1B,MAAA,MAAM,OACJ,OAAO,MAAA,KAAW,WAAW,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,GAAI,MAAA;AAChE,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,MAAM,WAAA,GACJ,OAAO,MAAA,KAAW,QAAA,GAAW,MAAA,GAAS,WAAA;AACxC,QAAA,IAAA,CAAK,SAAA,CAAU,sBAAA,EAAwB,EAAE,MAAA,EAAQ,aAAa,CAAA;AAC9D,QAAA,MAAM,IAAI,MAAM,cAAA,CAAe,SAAA,CAAU,wBAAwB,EAAE,MAAA,EAAQ,WAAA,EAAa,CAAC,CAAA;AAAA,MAC3F;AAEA,MAAA,MAAM,KAAA,GAAQ,YAAY,IAAI,CAAA;AAC9B,MAAA,OAAO,KAAA,CAAM,IAAI,MAAM;AACrB,QAAA,MAAM,WAAW,OAAO,KAAA,KAAU,aAAa,KAAA,EAAM,GAAI,UAAU,EAAC;AACpE,QAAA,MAAM,MAAM,SAAA,CAAU,EAAE,GAAG,OAAA,EAAS,GAAG,SAAS,CAAA;AAChD,QAAA,KAAA,CAAM,MAAiB,GAAG,CAAA;AAE1B,QAAA,OAAO;AAAA,UACL,GAAA;AAAA,UACA,OAAA,GAAU;AACR,YAAA,OAAA,CAAQ,IAAI,CAAA;AACZ,YAAA,KAAA,CAAM,IAAA,EAAK;AACX,YAAA,cAAA,EAAe;AAAA,UACjB;AAAA,SACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AClCA,eAAsB,iBAAiB,MAAA,EAAsC;AAC3E,EAAA,IAAI,OAAO,cAAc,WAAA,EAAa;AACpC,IAAA,MAAM,MAAM,IAAI,SAAA,EAAU,CAAE,eAAA,CAAgB,QAAQ,WAAW,CAAA;AAC/D,IAAA,OAAO,GAAA;AAAA,EACT;AAEA,EAAA,IAAI;AACF,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,MAAM,OAAO,UAAU,CAAA;AAC7C,IAAA,MAAM,EAAE,QAAA,EAAAC,SAAAA,EAAS,GAAI,UAAU,MAAM,CAAA;AACrC,IAAA,OAAOA,SAAAA;AAAA,EACT,CAAA,CAAA,MAAQ;AACN,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;;;AClBA,IAAM,iCAAiB,IAAI,GAAA,CAAI,CAAC,SAAA,EAAW,UAAU,CAAC,CAAA;AAG/C,SAAS,4BAA4B,IAAA,EAAwB;AAClE,EAAA,MAAM,WAAsB,EAAC;AAC7B,EAAA,MAAM,IAAA,GAAO,CAAC,IAAA,KAAe;AAC3B,IAAA,KAAA,MAAW,KAAA,IAAS,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,UAAU,CAAA,EAAG;AAC/C,MAAA,IAAI,KAAA,CAAM,aAAa,CAAA,EAAG;AACxB,QAAA,MAAM,IAAA,GAAQ,KAAA,CAAkB,IAAA,CAAK,IAAA,EAAK;AAC1C,QAAA,IAAI,eAAe,GAAA,CAAI,IAAI,CAAA,EAAG,QAAA,CAAS,KAAK,KAAgB,CAAA;AAAA,MAC9D,CAAA,MAAA,IAAW,KAAA,CAAM,QAAA,KAAa,CAAA,EAAG;AAC/B,QAAA,IAAA,CAAK,KAAK,CAAA;AAAA,MACZ;AAAA,IACF;AAAA,EACF,CAAA;AACA,EAAA,IAAA,CAAK,IAAI,CAAA;AACT,EAAA,KAAA,MAAW,KAAK,QAAA,EAAU;AACxB,IAAA,CAAA,CAAE,UAAA,EAAY,YAAY,CAAC,CAAA;AAAA,EAC7B;AACF;;;ACGA,eAAsB,cAAA,CACpB,MAAA,EACA,GAAA,EACA,OAAA,GAAiC,EAAC,EACjB;AACjB,EAAA,MAAM,GAAA,GAAM,MAAM,gBAAA,CAAiB,MAAM,CAAA;AACzC,EAAA,MAAM,IAAA,GACJ,QAAQ,IAAA,IAAQ,IAAA,GACZ,IAAI,aAAA,CAAc,OAAA,CAAQ,IAAI,CAAA,GAC9B,GAAA,CAAI,IAAA;AACV,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAM,OAAA,GAAU,QAAQ,IAAA,IAAQ,MAAA;AAChC,IAAA,IAAA,CAAK,SAAA,CAAU,kBAAA,EAAoB,EAAE,IAAA,EAAM,SAAS,CAAA;AACpD,IAAA,MAAM,IAAI,MAAM,cAAA,CAAe,SAAA,CAAU,oBAAoB,EAAE,IAAA,EAAM,OAAA,EAAS,CAAC,CAAA;AAAA,EACjF;AAEA,EAAA,MAAM,QAAQ,EAAE,GAAG,OAAA,CAAQ,OAAA,EAAS,GAAG,GAAA,EAAI;AAC3C,EAAA,MAAM,WAAA,GAAc,UAAU,KAAK,CAAA;AAEnC,EAAA,gBAAA,CAAiB,OAAO,MAAM;AAC5B,IAAA,WAAA,CAAY,MAAM,WAAW,CAAA;AAAA,EAC/B,CAAC,CAAA;AAED,EAAA,MAAM,YAAA,GAAe,QAAQ,YAAA,KAAiB,KAAA;AAC9C,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,2BAAA,CAA4B,IAAI,CAAA;AAChC,IAAA,IAAI,OAAA,CAAQ,YAAA,IAAgB,GAAA,CAAI,eAAA,EAAiB;AAC/C,MAAA,2BAAA,CAA4B,IAAI,eAAe,CAAA;AAAA,IACjD;AAAA,EACF;AAEA,EAAA,IAAI,QAAQ,YAAA,EAAc;AACxB,IAAA,OAAO,IAAI,eAAA,CAAgB,SAAA;AAAA,EAC7B;AACA,EAAA,OAAO,KAAK,QAAA,KAAa,CAAA,GAAK,IAAA,CAAiB,SAAA,GAAY,OAAO,IAAI,CAAA;AACxE;;;ACrDA,eAAsB,eACpB,IAAA,EACA,GAAA,EACA,MAAA,GAAkB,IAAA,EAClB,MAAmB,IAAA,EACD;AAClB,EAAA,MAAM,OAAA,GAAU,YAAY,IAAI,CAAA;AAChC,EAAA,IAAI,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA,EAAG;AAC1B,IAAA,OAAO,gBAAA,CAAiB,OAAA,EAAS,GAAA,EAAK,MAAA,EAAQ,KAAK,SAAS,CAAA;AAAA,EAC9D;AACA,EAAA,OAAO,WAAA,CAAY,OAAA,EAAS,GAAA,EAAK,MAAA,EAAQ,KAAK,SAAS,CAAA;AACzD","file":"index.js","sourcesContent":["import type { EffectRunner } from '../types.js';\n\nconst targetMap = new WeakMap<object, Map<string | symbol, Set<EffectRunner>>>();\nconst runnerDeps = new WeakMap<EffectRunner, Array<{ target: object; key: string | symbol }>>();\n\nlet activeEffect: EffectRunner | null = null;\nconst effectStack: EffectRunner[] = [];\n\nexport const ITERATE_KEY = Symbol('iterate');\n\nexport function enterEffectScope(runner: EffectRunner): void {\n effectStack.push(runner);\n activeEffect = runner;\n}\n\nexport function leaveEffectScope(): void {\n effectStack.pop();\n activeEffect = effectStack[effectStack.length - 1] ?? null;\n}\n\nexport function cleanupRunnerDeps(runner: EffectRunner): void {\n const links = runnerDeps.get(runner);\n if (!links) return;\n for (const { target, key } of links) {\n targetMap.get(target)?.get(key)?.delete(runner);\n }\n links.length = 0;\n}\n\nexport function stopRunner(runner: EffectRunner): void {\n runner.stopped = true;\n runner.paused = false;\n cleanupRunnerDeps(runner);\n runnerDeps.delete(runner);\n}\n\nexport function track(target: object, key: string | symbol): void {\n if (!activeEffect || activeEffect.stopped || activeEffect.paused) return;\n let depsMap = targetMap.get(target);\n if (!depsMap) targetMap.set(target, (depsMap = new Map()));\n let dep = depsMap.get(key);\n if (!dep) depsMap.set(key, (dep = new Set()));\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect);\n let links = runnerDeps.get(activeEffect);\n if (!links) runnerDeps.set(activeEffect, (links = []));\n links.push({ target, key });\n }\n}\n\nexport function trigger(target: object, key: string | symbol): void {\n const depsMap = targetMap.get(target);\n if (!depsMap) return;\n const dep = depsMap.get(key);\n if (!dep) return;\n dep.forEach((e) => {\n if (!e.stopped && !e.paused) e.scheduler(e);\n });\n}\n","const jobQueue = new Set<() => void>();\nconst nextTickQueue = new Set<() => void>();\nlet flushing = false;\nlet flushPromise: Promise<void> | null = null;\n\nfunction flushJobs(): void {\n jobQueue.forEach((j) => j());\n jobQueue.clear();\n flushing = false;\n nextTickQueue.forEach((fn) => fn());\n nextTickQueue.clear();\n flushPromise = null;\n}\n\nfunction scheduleFlush(): void {\n if (flushing) return;\n flushing = true;\n flushPromise ??= Promise.resolve().then(flushJobs);\n}\n\n/** Schedules a reactive effect re-run (microtask batch). */\nexport function queueJob(job: () => void): void {\n jobQueue.add(job);\n scheduleFlush();\n}\n\n/** Runs after the current reactive flush (same microtask turn as effect updates). */\nexport function queueNextTick(fn: () => void): void {\n nextTickQueue.add(fn);\n scheduleFlush();\n}\n\nexport function flushSync(fn: () => void): void {\n fn();\n if (flushing || jobQueue.size > 0) {\n flushJobs();\n } else {\n nextTickQueue.forEach((f) => f());\n nextTickQueue.clear();\n }\n}\n","import type { EffectRunner } from '../types.js';\r\n\r\nexport class EffectScope {\r\n active = true;\r\n private readonly effects: EffectRunner[] = [];\r\n private readonly disposers: Array<() => void> = [];\r\n\r\n constructor(public readonly detached = false) {}\r\n\r\n run<T>(fn: () => T): T {\r\n if (!this.active) return fn();\r\n const prev = activeScope;\r\n activeScope = this;\r\n try {\r\n return fn();\r\n } finally {\r\n activeScope = prev;\r\n }\r\n }\r\n\r\n register(runner: EffectRunner): void {\r\n if (!this.active) {\r\n runner.stop();\r\n return;\r\n }\r\n this.effects.push(runner);\r\n }\r\n\r\n registerDispose(fn: () => void): void {\r\n if (!this.active) {\r\n fn();\r\n return;\r\n }\r\n this.disposers.push(fn);\r\n }\r\n\r\n stop(): void {\r\n if (!this.active) return;\r\n this.active = false;\r\n for (const d of this.disposers) d();\r\n this.disposers.length = 0;\r\n for (const e of this.effects) e.stop();\r\n this.effects.length = 0;\r\n }\r\n}\r\n\r\nlet activeScope: EffectScope | null = null;\r\n\r\nexport function effectScope(detached = false): EffectScope {\r\n return new EffectScope(detached);\r\n}\r\n\r\nexport function getCurrentScope(): EffectScope | null {\r\n return activeScope;\r\n}\r\n\r\nexport function onScopeDispose(fn: () => void): void {\r\n activeScope?.registerDispose(fn);\r\n}\r\n","import type { EffectRunner, EffectOptions } from '../types.js';\nimport {\n enterEffectScope,\n leaveEffectScope,\n cleanupRunnerDeps,\n stopRunner,\n} from './tracking.js';\nimport { queueJob } from './scheduler.js';\nimport { getCurrentScope } from './effect-scope.js';\n\nexport function effect<T>(\n fn: () => T,\n opts: EffectOptions = {}\n): EffectRunner & (() => T) {\n let cleanupFn: (() => void) | undefined;\n\n const runner = (() => {\n if (runner.stopped || runner.paused) return;\n if (cleanupFn) {\n cleanupFn();\n cleanupFn = undefined;\n }\n cleanupRunnerDeps(runner);\n try {\n enterEffectScope(runner);\n return fn();\n } finally {\n leaveEffectScope();\n }\n }) as EffectRunner & (() => T);\n\n runner.stopped = false;\n runner.paused = false;\n runner.stop = () => stopRunner(runner);\n runner.pause = () => {\n runner.paused = true;\n };\n runner.resume = () => {\n if (runner.stopped) return;\n runner.paused = false;\n runner();\n };\n runner.scheduler = opts.scheduler ?? queueJob;\n\n if (opts.onCleanup) {\n cleanupFn = opts.onCleanup;\n }\n\n getCurrentScope()?.register(runner);\n\n if (!opts.lazy) runner();\n return runner;\n}\n\n/** Alias for `effect()` (Vue `watchEffect` style). */\nexport const watchEffect = effect;\n","import type { Ref, ShallowRefObject } from '../types.js';\n\nexport const REF_FLAG = '__isRef';\n\nexport function isRef(v: unknown): v is Ref<unknown> | ShallowRefObject {\n return !!(v && typeof v === 'object' && (v as Ref<unknown>)[REF_FLAG as keyof Ref<unknown>] === true);\n}\n\nexport function unref<T>(v: T | Ref<T> | ShallowRefObject<T>): T {\n return isRef(v) ? (v.value as T) : v;\n}\n","export function isPlainObject(o: unknown): o is Record<string, unknown> {\n if (!o || typeof o !== 'object') return false;\n const p = Object.getPrototypeOf(o);\n return p === Object.prototype || p === null;\n}\n\nexport function shouldWrap(v: unknown): boolean {\n return Array.isArray(v) || isPlainObject(v);\n}\n\nexport const proxyCache = new WeakMap<object, object>();\nexport const proxyToRaw = new WeakMap<object, object>();\nexport const markRawSet = new WeakSet<object>();\nexport const readonlyProxyCache = new WeakMap<object, object>();\nexport const READONLY_FLAG = '__isReadonly';\n","import type { ReactiveProxy } from '../types.js';\nimport { track, trigger, ITERATE_KEY } from './tracking.js';\nimport { isRef } from './ref-flags.js';\nimport {\n shouldWrap,\n proxyCache,\n proxyToRaw,\n markRawSet,\n} from './proxy-state.js';\n\nexport function reactive<T extends object>(obj: T): T {\n if (!obj || typeof obj !== 'object') return obj;\n if ((obj as ReactiveProxy).__isReactive) return obj;\n if (markRawSet.has(obj)) return obj;\n\n const cached = proxyCache.get(obj);\n if (cached) return cached as T;\n\n if (Array.isArray(obj)) {\n const arrayMethods = [\n \"push\",\n \"pop\",\n \"shift\",\n \"unshift\",\n \"splice\",\n \"sort\",\n \"reverse\",\n ];\n\n const p = new Proxy(obj, {\n get(target, key, receiver) {\n if (key === \"__isReactive\") return true;\n\n if (typeof key === 'string' && arrayMethods.includes(key)) {\n return function (...args: unknown[]) {\n const oldLength = target.length;\n const mutator = key as (typeof arrayMethods)[number];\n const proto = Array.prototype as unknown as Record<\n string,\n ((...a: unknown[]) => unknown) | undefined\n >;\n const fn = proto[mutator];\n if (!fn) return undefined;\n const result = fn.apply(target, args);\n if (target.length !== oldLength) trigger(target, \"length\");\n if (key === \"push\" || key === \"unshift\" || key === \"splice\") {\n for (let i = 0; i < target.length; i++) trigger(target, i + \"\");\n }\n return result;\n };\n }\n\n const value = Reflect.get(target, key, receiver);\n track(target, key);\n return shouldWrap(value) ? reactive(value as object) : value;\n },\n set(target, key, value, receiver) {\n const old = Reflect.get(target, key) as unknown;\n const result = Reflect.set(target, key, value, receiver);\n if (old !== value) {\n trigger(target, key);\n if (typeof key === 'string' && key !== '' && !Number.isNaN(Number(key))) {\n trigger(target, key);\n }\n }\n return result;\n },\n has(target, key) {\n track(target, key);\n return Reflect.has(target, key);\n },\n deleteProperty(target, key) {\n const hadKey = Object.prototype.hasOwnProperty.call(target, key);\n const result = Reflect.deleteProperty(target, key);\n if (hadKey) {\n trigger(target, key);\n trigger(target, \"length\");\n }\n return result;\n },\n });\n\n proxyCache.set(obj, p);\n proxyToRaw.set(p, obj);\n return p;\n }\n\n const p = new Proxy(obj, {\n get(t, k, r) {\n if (k === \"__isReactive\") return true;\n const v = Reflect.get(t, k, r);\n track(t, k);\n if (isRef(v)) {\n const u = v.value;\n return shouldWrap(u) ? reactive(u as object) : u;\n }\n return shouldWrap(v) ? reactive(v as object) : v;\n },\n set(t, k, v, r) {\n const old = Reflect.get(t, k) as unknown;\n const hadKey = Object.prototype.hasOwnProperty.call(t, k);\n const res = Reflect.set(t, k, v, r);\n if (old !== v) {\n trigger(t, k);\n if (!hadKey) trigger(t, ITERATE_KEY);\n }\n return res;\n },\n has(t, k) {\n track(t, k);\n return Reflect.has(t, k);\n },\n deleteProperty(t, k) {\n const hadKey = Object.prototype.hasOwnProperty.call(t, k);\n const res = Reflect.deleteProperty(t, k);\n if (hadKey) {\n trigger(t, k);\n trigger(t, ITERATE_KEY);\n }\n return res;\n },\n ownKeys(t) {\n track(t, ITERATE_KEY);\n return Reflect.ownKeys(t);\n },\n });\n\n proxyCache.set(obj, p);\n proxyToRaw.set(p, obj);\n return p;\n}\n","import { track, trigger, ITERATE_KEY } from './tracking.js';\nimport { isRef } from './ref-flags.js';\nimport {\n shouldWrap,\n proxyToRaw,\n markRawSet,\n readonlyProxyCache,\n READONLY_FLAG,\n} from './proxy-state.js';\n\nexport function readonly<T extends object>(obj: T): T {\n if (!obj || typeof obj !== 'object') return obj;\n if ((obj as Record<string, unknown>)[READONLY_FLAG]) return obj;\n if (markRawSet.has(obj)) return obj;\n\n const cached = readonlyProxyCache.get(obj);\n if (cached) return cached as T;\n\n const p = new Proxy(obj, {\n get(t, k, r) {\n if (k === \"__isReactive\" || k === READONLY_FLAG) return true;\n const v = Reflect.get(t, k, r);\n track(t, k);\n if (isRef(v)) {\n const u = v.value;\n return shouldWrap(u) ? readonly(u as object) : u;\n }\n return shouldWrap(v) ? readonly(v as object) : v;\n },\n set() {\n return true;\n },\n has(t, k) {\n track(t, k);\n return Reflect.has(t, k);\n },\n deleteProperty() {\n return true;\n },\n ownKeys(t) {\n track(t, ITERATE_KEY);\n return Reflect.ownKeys(t);\n },\n });\n\n readonlyProxyCache.set(obj, p);\n proxyToRaw.set(p, obj);\n return p;\n}\n","import type { ReactiveProxy } from '../types.js';\r\nimport { track, trigger, ITERATE_KEY } from './tracking.js';\r\nimport { isRef } from './ref-flags.js';\r\nimport { proxyToRaw, markRawSet } from './proxy-state.js';\r\n\r\nconst shallowProxyCache = new WeakMap<object, object>();\r\n\r\nexport function shallowReactive<T extends object>(obj: T): T {\r\n if (!obj || typeof obj !== 'object') return obj;\r\n if ((obj as ReactiveProxy).__isReactive) return obj;\r\n if (markRawSet.has(obj)) return obj;\r\n\r\n const cached = shallowProxyCache.get(obj);\r\n if (cached) return cached as T;\r\n\r\n const p = new Proxy(obj, {\r\n get(t, k, r) {\r\n if (k === '__isReactive') return true;\r\n const v = Reflect.get(t, k, r);\r\n track(t, k);\r\n if (isRef(v)) return v.value;\r\n return v;\r\n },\r\n set(t, k, v, r) {\r\n const old = Reflect.get(t, k) as unknown;\r\n const hadKey = Object.prototype.hasOwnProperty.call(t, k);\r\n const res = Reflect.set(t, k, v, r);\r\n if (old !== v) {\r\n trigger(t, k);\r\n if (!hadKey) trigger(t, ITERATE_KEY);\r\n }\r\n return res;\r\n },\r\n has(t, k) {\r\n track(t, k);\r\n return Reflect.has(t, k);\r\n },\r\n deleteProperty(t, k) {\r\n const hadKey = Object.prototype.hasOwnProperty.call(t, k);\r\n const res = Reflect.deleteProperty(t, k);\r\n if (hadKey) {\r\n trigger(t, k);\r\n trigger(t, ITERATE_KEY);\r\n }\r\n return res;\r\n },\r\n ownKeys(t) {\r\n track(t, ITERATE_KEY);\r\n return Reflect.ownKeys(t);\r\n },\r\n });\r\n\r\n shallowProxyCache.set(obj, p);\r\n proxyToRaw.set(p, obj);\r\n return p;\r\n}\r\n","import { track, ITERATE_KEY } from './tracking.js';\r\nimport { isRef } from './ref-flags.js';\r\nimport { proxyToRaw, markRawSet, READONLY_FLAG } from './proxy-state.js';\r\n\r\nconst shallowReadonlyCache = new WeakMap<object, object>();\r\n\r\nexport function shallowReadonly<T extends object>(obj: T): T {\r\n if (!obj || typeof obj !== 'object') return obj;\r\n if (markRawSet.has(obj)) return obj;\r\n\r\n const cached = shallowReadonlyCache.get(obj);\r\n if (cached) return cached as T;\r\n\r\n const p = new Proxy(obj, {\r\n get(t, k, r) {\r\n if (k === '__isReactive' || k === READONLY_FLAG) return true;\r\n const v = Reflect.get(t, k, r);\r\n track(t, k);\r\n if (isRef(v)) return v.value;\r\n return v;\r\n },\r\n set() {\r\n return true;\r\n },\r\n has(t, k) {\r\n track(t, k);\r\n return Reflect.has(t, k);\r\n },\r\n deleteProperty() {\r\n return true;\r\n },\r\n ownKeys(t) {\r\n track(t, ITERATE_KEY);\r\n return Reflect.ownKeys(t);\r\n },\r\n });\r\n\r\n shallowReadonlyCache.set(obj, p);\r\n proxyToRaw.set(p, obj);\r\n return p;\r\n}\r\n","import type { ReactiveProxy } from '../types.js';\nimport { proxyToRaw, markRawSet, READONLY_FLAG } from './proxy-state.js';\n\nexport function toRaw<T>(proxy: T): T {\n return (proxyToRaw.get(proxy as object) as T | undefined) ?? proxy;\n}\n\nexport function markRaw<T extends object>(obj: T): T {\n if (obj != null && typeof obj === 'object') markRawSet.add(obj as object);\n return obj;\n}\n\nexport function isReactive(obj: unknown): obj is ReactiveProxy {\n return !!(obj && typeof obj === 'object' && (obj as ReactiveProxy).__isReactive === true);\n}\n\nexport function isReadonly(obj: unknown): boolean {\n return !!(obj && typeof obj === 'object' && (obj as Record<string, unknown>)[READONLY_FLAG] === true);\n}\n","/** Internal effect runner returned by `effect()`. */\r\nexport type EffectRunner = (() => void) & {\r\n stopped: boolean;\r\n paused: boolean;\r\n stop: () => void;\r\n pause: () => void;\r\n resume: () => void;\r\n scheduler: (run: () => void) => void;\r\n};\r\n\r\nexport type EffectOptions = {\r\n lazy?: boolean;\r\n scheduler?: (run: () => void) => void;\r\n onCleanup?: () => void;\r\n};\r\n\r\nexport type CustomRefFactory<T> = (\r\n track: () => void,\r\n trigger: () => void\r\n) => {\r\n get: () => T;\r\n set: (value: T) => void;\r\n};\r\n\r\nexport type EffectScopeHandle = {\r\n readonly active: boolean;\r\n run<T>(fn: () => T): T;\r\n stop(): void;\r\n};\r\n\r\nexport type Ref<T> = { value: T; readonly __isRef?: true };\r\n\r\nexport type ComputedOptions<T> = {\r\n get: () => T;\r\n set?: (v: T) => void;\r\n};\r\n\r\nexport type WatchCallback = (\r\n newVal: unknown,\r\n oldVal: unknown,\r\n onCleanup: (fn: () => void) => void\r\n) => void;\r\n\r\nexport type WatchOptions = {\r\n immediate?: boolean;\r\n deep?: boolean;\r\n flush?: 'pre' | 'post' | 'sync';\r\n};\r\n\r\nexport type WatchSource = unknown | (() => unknown) | (unknown | (() => unknown))[];\r\n\r\nexport type SetupFn = (() => Record<string, unknown>) | Record<string, unknown>;\r\n\r\nexport type ReactivityApp = {\r\n mount(\r\n target: Element | string,\r\n initial?: Record<string, unknown>\r\n ): { ctx: Record<string, unknown>; unmount: () => void };\r\n};\r\n\r\n/** Reactive proxy marker set on proxied objects. */\r\nexport interface ReactiveProxy {\r\n __isReactive?: boolean;\r\n __isReadonly?: boolean;\r\n __isRef?: boolean;\r\n [key: string | symbol]: unknown;\r\n}\r\n\r\nexport const SHALLOW_REF_TARGET: unique symbol = Symbol('shallowRefTarget');\r\n\r\nexport interface ShallowRefObject<T = unknown> {\r\n value: T;\r\n readonly __isRef?: true;\r\n [SHALLOW_REF_TARGET]?: { value: T };\r\n}\r\n\r\nexport type EvalScope = {\r\n ctx: Record<string, unknown>;\r\n locals: Record<string, unknown>;\r\n};\r\n\r\nexport type EvalMeta = {\r\n $event?: unknown;\r\n $el?: Element | null;\r\n debugLabel?: string;\r\n};\r\n\r\n/** One row produced by `normalizeForSource` for `sky-for`. */\r\nexport type ForListItem = {\r\n value: unknown;\r\n key: string | number;\r\n extra: Record<string, unknown>;\r\n};\r\n\r\n/** Cached `{{ }}` segment for text interpolation. */\r\nexport type TextTemplateToken =\r\n | { t: 'text'; v: string }\r\n | { t: 'expr'; ast: import('acorn').Expression };\r\n","import type { Ref, ShallowRefObject, CustomRefFactory } from '../types.js';\nimport { SHALLOW_REF_TARGET } from '../types.js';\nimport { track, trigger } from './tracking.js';\nimport { reactive } from './reactive.js';\nimport { REF_FLAG, isRef } from './ref-flags.js';\n\n/** Mutable ref wrapper `{ value }` with deep reactivity on **`.value`** when assigned plain objects/arrays. */\nexport function ref<T>(v: T): Ref<T> {\n const r = reactive({ value: v }) as Ref<T>;\n Object.defineProperty(r, REF_FLAG, { value: true });\n return r;\n}\n\n/** Ref whose **`.value`** is not deeply made reactive. */\nexport function shallowRef<T>(v: T): ShallowRefObject<T> {\n const inner = { value: v };\n const shallow: ShallowRefObject<T> = {\n get value() {\n track(inner, 'value');\n return inner.value;\n },\n set value(val) {\n inner.value = val;\n trigger(inner, 'value');\n },\n };\n Object.defineProperty(shallow, REF_FLAG, { value: true });\n Object.defineProperty(shallow, SHALLOW_REF_TARGET, { value: inner });\n return shallow;\n}\n\n/** Forces subscribers to re-run for a **shallow** ref when inner object is mutated without replacing `.value`. */\nexport function triggerRef(r: ShallowRefObject | Ref<unknown> | null | undefined) {\n const inner = r && isRef(r) ? (r as ShallowRefObject)[SHALLOW_REF_TARGET] : undefined;\n if (inner) trigger(inner, 'value');\n}\n\nexport function customRef<T>(factory: CustomRefFactory<T>): Ref<T> {\n const inner = { value: undefined as T };\n const trackDep = () => track(inner, 'value');\n const triggerDep = () => trigger(inner, 'value');\n const { get, set } = factory(trackDep, triggerDep);\n const r = {\n get value() {\n trackDep();\n return get();\n },\n set value(v: T) {\n set(v);\n triggerDep();\n },\n } as Ref<T>;\n Object.defineProperty(r, REF_FLAG, { value: true });\n return r;\n}\n","import type { Ref } from '../types.js';\r\nimport { REF_FLAG, isRef } from './ref-flags.js';\r\n\r\nexport function toRef<T extends object, K extends keyof T>(\r\n object: T,\r\n key: K\r\n): Ref<T[K]> {\r\n const r = {\r\n get value(): T[K] {\r\n const v = object[key];\r\n return (isRef(v) ? v.value : v) as T[K];\r\n },\r\n set value(val: T[K]) {\r\n const cur = object[key];\r\n if (isRef(cur)) cur.value = val;\r\n else object[key] = val;\r\n },\r\n } as Ref<T[K]>;\r\n Object.defineProperty(r, REF_FLAG, { value: true });\r\n return r;\r\n}\r\n\r\nexport function toRefs<T extends object>(\r\n object: T\r\n): { [K in keyof T]: Ref<T[K]> } {\r\n const ret = {} as { [K in keyof T]: Ref<T[K]> };\r\n for (const key of Object.keys(object) as Array<keyof T>) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\n","import type { Ref, ComputedOptions } from '../types.js';\nimport { effect } from './effect.js';\nimport { ref } from './ref.js';\nimport { REF_FLAG } from './ref-flags.js';\n\nexport function computed<T>(\n getterOrOptions: (() => T) | ComputedOptions<T>\n): Ref<T> {\n const onlyGetter = typeof getterOrOptions === 'function';\n const getter = onlyGetter ? getterOrOptions : getterOrOptions.get;\n const setter = onlyGetter ? undefined : getterOrOptions.set;\n\n const r = ref<T>(undefined as T);\n effect(() => {\n r.value = getter();\n });\n\n if (setter !== undefined) {\n return {\n get value() {\n return r.value;\n },\n set value(v) {\n setter(v);\n },\n [REF_FLAG]: true,\n };\n }\n return r;\n}\n","import type { WatchCallback, WatchOptions, WatchSource } from '../types.js';\nimport { effect } from './effect.js';\nimport { queueJob } from './scheduler.js';\nimport { unref } from './ref-flags.js';\n\nexport function watch(src: WatchSource, cb: WatchCallback, opts: WatchOptions = {}) {\n const { immediate = false, deep = false, flush = 'post' } = opts;\n\n const isMulti = Array.isArray(src);\n const getter = isMulti\n ? () => src.map((s) => (typeof s === 'function' ? s() : unref(s)))\n : typeof src === 'function'\n ? src\n : () => unref(src);\n\n const traverse = (v: unknown, seen = new Set<object>()): unknown => {\n v = unref(v);\n if (!v || typeof v !== 'object' || seen.has(v)) return v;\n seen.add(v);\n if (Array.isArray(v)) {\n v.length;\n for (let i = 0; i < v.length; i++) traverse(v[i], seen);\n } else {\n const record = v as Record<string, unknown>;\n for (const k in record) traverse(record[k], seen);\n }\n return v;\n };\n\n let old: unknown;\n let cleanup: (() => void) | undefined;\n\n const run = () => {\n if (cleanup) {\n cleanup();\n cleanup = undefined;\n }\n const val = getter();\n if (deep) traverse(val);\n const prev = old;\n const shouldCall = prev !== undefined || immediate;\n old = val;\n if (shouldCall) {\n const onCleanup = (fn: () => void) => {\n cleanup = fn;\n };\n cb(val, prev, onCleanup);\n }\n };\n\n const scheduler =\n flush === 'sync'\n ? (runFn: () => void) => runFn()\n : (runFn: () => void) => queueJob(runFn);\n const runner = effect(run, { lazy: !immediate, scheduler });\n\n return () => runner.stop();\n}\n","import { queueNextTick } from './scheduler.js';\n\nexport const nextTick = (fn?: () => void): Promise<void> => {\n if (fn) {\n return new Promise<void>((resolve) => {\n queueNextTick(() => {\n fn();\n resolve();\n });\n });\n }\n return new Promise<void>((resolve) => {\n queueNextTick(() => resolve());\n });\n};\n","import * as acorn from 'acorn';\nimport type { AstExpression, AstProgram } from './acorn-types.js';\n\nconst exprCache = new Map<string, AstExpression>();\nconst stmtCache = new Map<string, AstProgram>();\nfunction stripSemi(s: string): string {\n return String(s || \"\")\n .trim()\n .replace(/;+\\s*$/g, \"\");\n}\n\nexport function parseExpr(expr: string): AstExpression {\n const src = stripSemi(expr) || \"undefined\";\n let ast = exprCache.get(src);\n if (!ast) {\n try {\n const program = acorn.parse(`(${src})`, {\n ecmaVersion: \"latest\",\n sourceType: \"script\",\n });\n const first = program.body[0];\n if (first?.type !== 'ExpressionStatement') {\n throw new SyntaxError(`[Sky parseExpr] Expected expression, got ${first?.type ?? 'empty'}`);\n }\n ast = first.expression;\n exprCache.set(src, ast);\n } catch (e: unknown) {\n const msg = e instanceof Error ? e.message : String(e);\n throw new SyntaxError(`[Sky parseExpr] ${msg}\\nSRC: ${src}`);\n }\n }\n return ast;\n}\n\nexport function parseStmt(code: string): AstProgram {\n code = String(code || \"\").trim();\n if (!stmtCache.has(code)) {\n const program = acorn.parse(code, {\n ecmaVersion: \"latest\",\n sourceType: \"script\",\n allowAwaitOutsideFunction: true,\n allowReturnOutsideFunction: true,\n });\n stmtCache.set(code, program);\n }\n const cached = stmtCache.get(code);\n if (!cached) throw new SyntaxError('[Sky parseStmt] failed to parse');\n return cached;\n}\n\n/** Parse and cache a template expression string. */\nexport function compileExpr(expr: string): AstExpression {\n return parseExpr(expr);\n}\n\n/** Parse and cache an event-handler statement string. */\nexport function compileStmt(code: string): AstProgram {\n return parseStmt(code);\n}\n\nexport function clearAstCaches(): void {\n exprCache.clear();\n stmtCache.clear();\n}\n","export const SAFE_GLOBALS = Object.freeze({\n Math,\n Number,\n String,\n Boolean,\n Array,\n Object,\n JSON,\n Date,\n RegExp,\n parseInt,\n parseFloat,\n isNaN,\n isFinite,\n console, // optional\n});\n\nexport const BLOCKED_PROPS = new Set([\"__proto__\", \"prototype\", \"constructor\"]);\nexport const BLOCKED_IDENTIFIERS = new Set([\n \"window\",\n \"self\",\n \"document\",\n \"globalThis\",\n \"Function\",\n \"eval\",\n \"constructor\",\n \"__proto__\",\n \"prototype\",\n \"location\",\n \"localStorage\",\n \"sessionStorage\",\n \"indexedDB\",\n \"navigator\",\n \"fetch\",\n \"XMLHttpRequest\",\n \"WebSocket\",\n]);\r","declare global {\r\n // Runtime override for browser `<script>` bundles: `globalThis.__SKY_DEV__ = false`.\r\n // Do not reference bare `__SKY_DEV__` in source — use `getSkyDev()` so bundlers\r\n // do not treat it as a free global after minification.\r\n // eslint-disable-next-line no-var\r\n var __SKY_DEV__: boolean | undefined;\r\n}\r\n\r\n/** When `false`, dev warnings and verbose errors are suppressed (Vue-style). */\r\nexport function getSkyDev(): boolean {\r\n if (typeof globalThis.__SKY_DEV__ === 'boolean') {\r\n return globalThis.__SKY_DEV__;\r\n }\r\n return typeof process !== 'undefined' && process.env.NODE_ENV === 'production'\r\n ? false\r\n : true;\r\n}\r\n\r\nexport function setSkyDev(enabled: boolean): void {\r\n globalThis.__SKY_DEV__ = enabled;\r\n}\r\n\r\n/** Snapshot at module load; prefer `getSkyDev()` for runtime checks. */\r\nconst skyDevSnapshot = getSkyDev();\r\nexport { skyDevSnapshot as __SKY_DEV__ };\r\n","/** Stable warning codes (search docs / source by code). */\r\nexport const WarnCodes = {\r\n MODEL_ARG_ON_NATIVE: 'MODEL_ARG_ON_NATIVE',\r\n MODEL_INVALID_KEY: 'MODEL_INVALID_KEY',\r\n MODEL_UNKNOWN_MODIFIER: 'MODEL_UNKNOWN_MODIFIER',\r\n MODEL_DUPLICATE: 'MODEL_DUPLICATE',\r\n FOR_KEY_RECOMMENDED: 'FOR_KEY_RECOMMENDED',\r\n FOR_INVALID_SYNTAX: 'FOR_INVALID_SYNTAX',\r\n EVENT_UNKNOWN_MODIFIER: 'EVENT_UNKNOWN_MODIFIER',\r\n HANDLER_RUNTIME: 'HANDLER_RUNTIME',\r\n AST_EVAL: 'AST_EVAL',\r\n AST_STMT: 'AST_STMT',\r\n AST_BLOCKED: 'AST_BLOCKED',\r\n MOUNT_TARGET_NOT_FOUND: 'MOUNT_TARGET_NOT_FOUND',\r\n SSR_ROOT_NOT_FOUND: 'SSR_ROOT_NOT_FOUND',\r\n SKY_HTML_UNSAFE: 'SKY_HTML_UNSAFE',\r\n} as const;\r\n\r\nexport type WarnCode = (typeof WarnCodes)[keyof typeof WarnCodes];\r\n\r\nconst messages: Record<WarnCode, string> = {\r\n [WarnCodes.MODEL_ARG_ON_NATIVE]:\r\n 'sky-model:{arg} is for custom elements only. On <{tag}> use sky-model=\"{key}\" without an argument.',\r\n [WarnCodes.MODEL_INVALID_KEY]:\r\n 'Invalid sky-model value \"{value}\". Expected a single identifier (e.g. sky-model=\"count\").',\r\n [WarnCodes.MODEL_UNKNOWN_MODIFIER]:\r\n 'Unknown sky-model modifier(s) \"{mods}\". Supported: .lazy, .number, .trim.',\r\n [WarnCodes.MODEL_DUPLICATE]:\r\n 'Multiple sky-model bindings on the same element. Only one is applied.',\r\n [WarnCodes.FOR_KEY_RECOMMENDED]:\r\n 'sky-for without sky-key may recreate DOM nodes on list updates. Add sky-key=\"item.id\" (or a stable key).',\r\n [WarnCodes.FOR_INVALID_SYNTAX]:\r\n 'Invalid sky-for=\"{expr}\". Use `item in items` or `(item, index) in items`.',\r\n [WarnCodes.EVENT_UNKNOWN_MODIFIER]:\r\n 'Unknown event modifier \"{mod}\" on @{event}. Ignored.',\r\n [WarnCodes.HANDLER_RUNTIME]:\r\n 'Unhandled error in event handler{label}.',\r\n [WarnCodes.AST_EVAL]:\r\n 'Expression evaluation failed{label}.',\r\n [WarnCodes.AST_STMT]:\r\n 'Statement execution failed{label}.',\r\n [WarnCodes.AST_BLOCKED]:\r\n '{detail}',\r\n [WarnCodes.MOUNT_TARGET_NOT_FOUND]:\r\n 'Failed to mount: target \"{target}\" was not found.',\r\n [WarnCodes.SSR_ROOT_NOT_FOUND]:\r\n 'SSR root \"{root}\" was not found in markup.',\r\n [WarnCodes.SKY_HTML_UNSAFE]:\r\n 'sky-html sets innerHTML from an expression. Only bind trusted content to avoid XSS.',\r\n};\r\n\r\nexport function getWarnMessage(\r\n code: WarnCode,\r\n args: Record<string, string | number> = {}\r\n): string {\r\n let msg = messages[code] ?? code;\r\n for (const [k, v] of Object.entries(args)) {\r\n msg = msg.replaceAll(`{${k}}`, String(v));\r\n }\r\n return msg.replace(/\\{(\\w+)\\}/g, '');\r\n}\r\n","import { getSkyDev } from './env.js';\r\nimport { getWarnMessage, WarnCodes, type WarnCode } from './warn-codes.js';\r\n\r\nexport type WarnContext = {\r\n /** Element the warning relates to (shown as `<tag#id>`). */\r\n element?: Element | null;\r\n /** Short location hint, e.g. `@click` or `sky-for`. */\r\n label?: string;\r\n};\r\n\r\nexport type SkyWarnHandler = (\r\n code: WarnCode,\r\n message: string,\r\n context?: WarnContext\r\n) => void;\r\n\r\nconst warnedKeys = new Set<string>();\r\nconst elementIds = new WeakMap<Element, number>();\r\nlet nextElementId = 0;\r\nlet customHandler: SkyWarnHandler | null = null;\r\n\r\nexport function setWarnHandler(handler: SkyWarnHandler | null): void {\r\n customHandler = handler;\r\n}\r\n\r\nfunction elementInstanceKey(el: Element | null | undefined): string {\r\n if (!el) return '';\r\n let id = elementIds.get(el);\r\n if (id === undefined) {\r\n id = ++nextElementId;\r\n elementIds.set(el, id);\r\n }\r\n return String(id);\r\n}\r\n\r\nfunction warnKey(code: WarnCode, context?: WarnContext): string {\r\n return `${code}:${elementInstanceKey(context?.element)}:${context?.label ?? ''}`;\r\n}\r\n\r\nfunction formatElement(el: Element): string {\r\n const tag = el.tagName.toLowerCase();\r\n const id = el.id ? `#${el.id}` : '';\r\n const extra = describeElement(el);\r\n return extra ? `<${tag}${id} ${extra}>` : `<${tag}${id}>`;\r\n}\r\n\r\nfunction describeElement(el: Element): string {\r\n const hints: string[] = [];\r\n const skyFor = el.getAttribute('sky-for');\r\n if (skyFor) {\r\n hints.push(\r\n `sky-for=\"${skyFor.slice(0, 48)}${skyFor.length > 48 ? '…' : ''}\"`\r\n );\r\n }\r\n const skyIf = el.getAttribute('sky-if') ?? el.getAttribute('sky-else-if');\r\n if (skyIf) hints.push(`sky-if=\"${skyIf.slice(0, 48)}\"`);\r\n return hints.join(' ');\r\n}\r\n\r\nfunction formatTrace(context?: WarnContext): string {\r\n const lines: string[] = [];\r\n if (context?.element) {\r\n lines.push(` at ${formatElement(context.element)}`);\r\n }\r\n if (context?.label) {\r\n lines.push(` (${context.label})`);\r\n }\r\n return lines.length > 0 ? '\\n' + lines.join('\\n') : '';\r\n}\r\n\r\nfunction emitWarn(\r\n code: WarnCode,\r\n message: string,\r\n context?: WarnContext\r\n): void {\r\n if (!getSkyDev()) return;\r\n\r\n const trace = formatTrace(context);\r\n const full = `[Sky warn]: ${message}${trace}`;\r\n\r\n if (customHandler) {\r\n customHandler(code, message, context);\r\n return;\r\n }\r\n\r\n console.warn(full);\r\n}\r\n\r\n/**\r\n * Log a development warning (no-op when `__SKY_DEV__` is false).\r\n */\r\nexport function warn(\r\n code: WarnCode,\r\n args: Record<string, string | number> = {},\r\n context?: WarnContext\r\n): void {\r\n emitWarn(code, getWarnMessage(code, args), context);\r\n}\r\n\r\n/**\r\n * Log each distinct warning once per element/label (Vue `warnOnce` style).\r\n */\r\nexport function warnOnce(\r\n code: WarnCode,\r\n args: Record<string, string | number> = {},\r\n context?: WarnContext\r\n): void {\r\n if (!getSkyDev()) return;\r\n const key = warnKey(code, context);\r\n if (warnedKeys.has(key)) return;\r\n warnedKeys.add(key);\r\n warn(code, args, context);\r\n}\r\n\r\n/**\r\n * Log a runtime error with Sky formatting (handlers, AST, etc.).\r\n */\r\nexport function logError(\r\n code: WarnCode,\r\n err: unknown,\r\n context?: WarnContext\r\n): void {\r\n if (!getSkyDev()) {\r\n if (code === WarnCodes.HANDLER_RUNTIME) {\r\n console.error(err);\r\n }\r\n return;\r\n }\r\n\r\n const labelArg = context?.label\r\n ? { label: ` (${context.label})` }\r\n : { label: '' };\r\n const message = getWarnMessage(code, labelArg);\r\n const trace = formatTrace(context);\r\n\r\n if (customHandler) {\r\n customHandler(code, `${message} ${formatErr(err)}`, context);\r\n return;\r\n }\r\n\r\n console.warn(`[Sky warn]: ${message}${trace}`);\r\n if (err != null) {\r\n console.warn(formatErr(err));\r\n }\r\n}\r\n\r\nfunction formatErr(err: unknown): string {\r\n if (err instanceof Error) {\r\n return err.stack ?? err.message;\r\n }\r\n return String(err);\r\n}\r\n\r\n/** Clear dedupe cache (tests). */\r\nexport function resetWarned(): void {\r\n warnedKeys.clear();\r\n}\r\n\r\nexport { WarnCodes, getWarnMessage };\r\n","import { BLOCKED_IDENTIFIERS, BLOCKED_PROPS } from './constants.js';\nimport { getSkyDev } from '../shared/env.js';\nimport { warn, WarnCodes } from '../shared/warn.js';\n\nexport function fail(msg: string): never {\n throw new Error('[Sky] ' + msg);\n}\nexport function isObjectLike(v: unknown): v is object {\n return v !== null && (typeof v === 'object' || typeof v === 'function');\n}\nexport function assertSafeMemberKey(key: PropertyKey): void {\n if (typeof key === 'string' && BLOCKED_PROPS.has(key)) {\n if (getSkyDev()) {\n warn(\n WarnCodes.AST_BLOCKED,\n {\n detail: `Blocked property access: ${key}. Use a method on context instead.`,\n },\n { label: 'expression' }\n );\n }\n fail(`Blocked property access: ${key}`);\n }\n}\nexport function assertSafeIdentifier(name: string): void {\n if (BLOCKED_IDENTIFIERS.has(name)) {\n if (getSkyDev()) {\n warn(\n WarnCodes.AST_BLOCKED,\n {\n detail: `Blocked identifier \"${name}\" in template code. Expose a safe helper from setup instead.`,\n },\n { label: 'expression' }\n );\n }\n fail(`Blocked identifier: ${name}`);\n }\n}\nexport function toKey(v: unknown): string | number {\n return typeof v === 'symbol' ? String(v) : (v as string | number);\n}\n","import type { EvalScope } from '../types.js';\nimport { SAFE_GLOBALS } from './constants.js';\nimport { assertSafeIdentifier } from './errors.js';\nimport { isRef } from '../reactivity/ref-flags.js';\n\nexport function createScope(ctx: Record<string, unknown>, locals: Record<string, unknown> | null = null): EvalScope {\n return { ctx, locals: locals ?? Object.create(null) };\n}\n\nexport function getVar(scope: EvalScope, name: string) {\n assertSafeIdentifier(name);\n if (name in scope.locals) return scope.locals[name];\n if (name in scope.ctx) return scope.ctx[name];\n if (name in SAFE_GLOBALS) return (SAFE_GLOBALS as Record<string, unknown>)[name];\n return undefined;\n}\n\n/** Assign to scope; writes through `.value` when the target is a ref. */\nexport function setVar(scope: EvalScope, name: string, value: unknown) {\n assertSafeIdentifier(name);\n\n let cur: unknown;\n let where: 'locals' | 'ctx' = 'ctx';\n\n if (name in scope.locals) {\n cur = scope.locals[name];\n where = 'locals';\n } else if (name in scope.ctx) {\n cur = scope.ctx[name];\n where = 'ctx';\n } else {\n cur = undefined;\n where = 'ctx';\n }\n\n if (isRef(cur) && !isRef(value)) {\n cur.value = value;\n return value;\n }\n\n if (where === \"locals\") scope.locals[name] = value;\n else scope.ctx[name] = value;\n\n return value;\n}\n","import { assertSafeMemberKey, fail, isObjectLike } from './errors.js';\nimport { isRef } from '../reactivity/ref-flags.js';\n\nexport function getMember(obj: unknown, key: PropertyKey): unknown {\n assertSafeMemberKey(key);\n if (!isObjectLike(obj)) return undefined;\n return (obj as Record<PropertyKey, unknown>)[key];\n}\n\nexport function setMember(obj: unknown, key: PropertyKey, value: unknown): unknown {\n assertSafeMemberKey(key);\n if (!isObjectLike(obj)) fail('Cannot set property on non-object');\n (obj as Record<PropertyKey, unknown>)[key] = value;\n return value;\n}\n\n/** Unwrap refs for member access unless explicitly `.value`. */\nexport function unwrapRefForMember(obj: unknown, key: PropertyKey): unknown {\n if (isRef(obj) && key !== 'value') return obj.value;\n return obj;\n}\n","import { fail } from './errors.js';\n\nfunction num(v: unknown): number {\n return Number(v);\n}\n\nexport function evalBinary(op: string, a: unknown, b: unknown): unknown {\n switch (op) {\n case '+':\n return num(a) + num(b);\n case '-':\n return num(a) - num(b);\n case '*':\n return num(a) * num(b);\n case '/':\n return num(a) / num(b);\n case '%':\n return num(a) % num(b);\n case '**':\n return num(a) ** num(b);\n case '==':\n return a == b;\n case '!=':\n return a != b;\n case '===':\n return a === b;\n case '!==':\n return a !== b;\n case '<':\n return num(a) < num(b);\n case '<=':\n return num(a) <= num(b);\n case '>':\n return num(a) > num(b);\n case '>=':\n return num(a) >= num(b);\n case '|':\n return num(a) | num(b);\n case '&':\n return num(a) & num(b);\n case '^':\n return num(a) ^ num(b);\n case '<<':\n return num(a) << num(b);\n case '>>':\n return num(a) >> num(b);\n case '>>>':\n return num(a) >>> num(b);\n case 'in':\n return typeof b === 'object' && b !== null && String(a) in (b as object);\n case 'instanceof':\n return (\n typeof b === 'function' && typeof a === 'object' && a !== null && a instanceof b\n );\n default:\n fail('Unsupported binary op: ' + op);\n }\n}\n\nexport function evalUnary(op: string, v: unknown): unknown {\n switch (op) {\n case '+':\n return +num(v);\n case '-':\n return -num(v);\n case '!':\n return !v;\n case '~':\n return ~num(v);\n case 'typeof':\n return typeof v;\n case 'void':\n return void v;\n case 'delete':\n return true;\n default:\n fail('Unsupported unary op: ' + op);\n }\n}\n\nexport function applyAssignment(op: string, leftVal: unknown, rightVal: unknown): unknown {\n switch (op) {\n case '=':\n return rightVal;\n case '+=':\n return num(leftVal) + num(rightVal);\n case '-=':\n return num(leftVal) - num(rightVal);\n case '*=':\n return num(leftVal) * num(rightVal);\n case '/=':\n return num(leftVal) / num(rightVal);\n case '%=':\n return num(leftVal) % num(rightVal);\n case '**=':\n return num(leftVal) ** num(rightVal);\n case '|=':\n return num(leftVal) | num(rightVal);\n case '&=':\n return num(leftVal) & num(rightVal);\n case '^=':\n return num(leftVal) ^ num(rightVal);\n case '<<=':\n return num(leftVal) << num(rightVal);\n case '>>=':\n return num(leftVal) >> num(rightVal);\n case '>>>=':\n return num(leftVal) >>> num(rightVal);\n default:\n fail('Unsupported assignment op: ' + op);\n }\n}\n","import type { EvalMeta, EvalScope } from '../types.js';\nimport { fail, assertSafeIdentifier, assertSafeMemberKey, toKey } from './errors.js';\nimport { getMember, setMember, unwrapRefForMember } from './member.js';\nimport { getVar, setVar } from './scope.js';\nimport { unref } from '../reactivity/ref-flags.js';\nimport { evalBinary, evalUnary, applyAssignment } from './operators.js';\n\n/** Acorn nodes in the supported subset (heterogeneous shapes). */\ntype AstEvalNode = any; // eslint-disable-line @typescript-eslint/no-explicit-any\n\nexport function resolveLValue(node: AstEvalNode, scope: EvalScope, meta: EvalMeta) {\n if (node.type === \"Identifier\") {\n assertSafeIdentifier(node.name);\n return {\n get: () => getVar(scope, node.name),\n set: (v: unknown) => setVar(scope, node.name, v),\n };\n }\n\n if (node.type === \"MemberExpression\") {\n let obj = evalExpression(node.object, scope, meta);\n\n const key = node.computed\n ? toKey(evalExpression(node.property, scope, meta))\n : node.property.name;\n\n obj = unwrapRefForMember(obj, key);\n\n return {\n get: () => getMember(obj, key),\n set: (v: unknown) => setMember(obj, key, v),\n };\n }\n\n fail(\"Invalid assignment target: \" + node.type);\n}\n\nexport function evalExpression(node: AstEvalNode, scope: EvalScope, meta: EvalMeta): unknown {\n switch (node.type) {\n case \"Literal\":\n return node.value;\n\n case \"Identifier\":\n return unref(getVar(scope, node.name));\n\n case \"ThisExpression\":\n return undefined;\n\n case \"ArrayExpression\":\n return node.elements.map((el: AstEvalNode | null) =>\n el ? evalExpression(el, scope, meta) : undefined\n );\n\n case \"ObjectExpression\": {\n const out: Record<string | number, unknown> = {};\n for (const p of node.properties) {\n if (p.type !== \"Property\")\n fail(\"Unsupported object property: \" + p.type);\n\n const k = p.computed\n ? evalExpression(p.key, scope, meta)\n : p.key.type === \"Identifier\"\n ? p.key.name\n : p.key.value;\n\n assertSafeMemberKey(k);\n out[k] = evalExpression(p.value, scope, meta);\n }\n return out;\n }\n\n case \"TemplateLiteral\": {\n let s = \"\";\n for (let i = 0; i < node.quasis.length; i++) {\n s += node.quasis[i].value.cooked || \"\";\n if (node.expressions[i]) {\n s += String(evalExpression(node.expressions[i], scope, meta) ?? \"\");\n }\n }\n return s;\n }\n\n case 'ChainExpression':\n return evalExpression(node.expression, scope, meta);\n\n case \"MemberExpression\": {\n let obj = evalExpression(node.object, scope, meta);\n if ((obj == null || obj === undefined) && node.optional) return undefined;\n const key = node.computed\n ? toKey(evalExpression(node.property, scope, meta))\n : node.property.name;\n\n obj = unwrapRefForMember(obj, key);\n return getMember(obj, key);\n }\n\n case \"CallExpression\": {\n const args: unknown[] = [];\n for (const a of node.arguments) {\n if (a.type === 'SpreadElement') {\n const spread = evalExpression(a.argument, scope, meta);\n if (!Array.isArray(spread)) fail('Spread in calls must be an array');\n args.push(...spread);\n } else {\n args.push(evalExpression(a, scope, meta));\n }\n }\n\n if (node.callee.type === \"Identifier\") {\n const name = node.callee.name;\n assertSafeIdentifier(name);\n const fn = getVar(scope, name);\n if (typeof fn !== \"function\") {\n if (node.optional) return undefined;\n return undefined;\n }\n return fn.apply(scope.ctx, args);\n }\n\n if (node.callee.type === \"MemberExpression\") {\n let obj = evalExpression(node.callee.object, scope, meta);\n if ((obj == null || obj === undefined) && node.optional) return undefined;\n\n const key = node.callee.computed\n ? toKey(evalExpression(node.callee.property, scope, meta))\n : node.callee.property.name;\n\n obj = unwrapRefForMember(obj, key);\n\n const fn = getMember(obj, key);\n if (typeof fn !== \"function\") {\n if (node.optional) return undefined;\n return undefined;\n }\n return fn.apply(obj, args);\n }\n\n fail(\"Unsupported call target: \" + node.callee.type);\n }\n\n case \"ConditionalExpression\":\n return evalExpression(node.test, scope, meta)\n ? evalExpression(node.consequent, scope, meta)\n : evalExpression(node.alternate, scope, meta);\n\n case \"LogicalExpression\": {\n const left = evalExpression(node.left, scope, meta);\n if (node.operator === \"&&\")\n return left && evalExpression(node.right, scope, meta);\n if (node.operator === \"||\")\n return left || evalExpression(node.right, scope, meta);\n if (node.operator === \"??\")\n return left ?? evalExpression(node.right, scope, meta);\n fail(\"Unsupported logical op: \" + node.operator);\n }\n\n case \"BinaryExpression\":\n return evalBinary(\n node.operator,\n evalExpression(node.left, scope, meta),\n evalExpression(node.right, scope, meta)\n );\n\n case \"UnaryExpression\":\n return evalUnary(\n node.operator,\n evalExpression(node.argument, scope, meta)\n );\n\n case \"UpdateExpression\": {\n const lv = resolveLValue(node.argument, scope, meta);\n const oldVal = lv.get();\n const n = Number(oldVal);\n const nextVal = node.operator === '++' ? n + 1 : n - 1;\n lv.set(nextVal);\n return node.prefix ? nextVal : oldVal;\n }\n\n case \"AssignmentExpression\": {\n const lv = resolveLValue(node.left, scope, meta);\n const right = evalExpression(node.right, scope, meta);\n const next = applyAssignment(node.operator, lv.get(), right);\n lv.set(next);\n return next;\n }\n\n case \"SequenceExpression\": {\n let v;\n for (const ex of node.expressions) v = evalExpression(ex, scope, meta);\n return v;\n }\n\n case \"ParenthesizedExpression\":\n return evalExpression(node.expression, scope, meta);\n\n default:\n fail(\"Unsupported expr node: \" + node.type);\n }\n}\n","import type { EvalMeta, EvalScope } from '../types.js';\r\nimport { evalExpression } from './eval-expression.js';\r\n\r\n/** Async expression eval — supports top-level `await` in event handlers. */\r\nexport async function evalExpressionAsync(\r\n node: Parameters<typeof evalExpression>[0],\r\n scope: EvalScope,\r\n meta: EvalMeta\r\n): Promise<unknown> {\r\n if (node?.type === 'AwaitExpression') {\r\n const v = evalExpression(node.argument, scope, meta);\r\n return await Promise.resolve(v as PromiseLike<unknown>);\r\n }\r\n return evalExpression(node, scope, meta);\r\n}\r\n","export const SIG_RETURN = Symbol('return');\r\nexport const SIG_BREAK = Symbol('break');\r\nexport const SIG_CONTINUE = Symbol('continue');\r\n\r\nexport type StmtSignal = { t: symbol; v?: unknown };\r\n\r\nexport function sigReturn(value: unknown): StmtSignal {\r\n return { t: SIG_RETURN, v: value };\r\n}\r\n\r\nexport function sigBreak(): StmtSignal {\r\n return { t: SIG_BREAK };\r\n}\r\n\r\nexport function sigContinue(): StmtSignal {\r\n return { t: SIG_CONTINUE };\r\n}\r\n\r\nexport function isReturn(r: unknown): r is StmtSignal {\r\n return r != null && typeof r === 'object' && (r as StmtSignal).t === SIG_RETURN;\r\n}\r\n\r\nexport function isBreak(r: unknown): r is StmtSignal {\r\n return r != null && typeof r === 'object' && (r as StmtSignal).t === SIG_BREAK;\r\n}\r\n\r\nexport function isContinue(r: unknown): r is StmtSignal {\r\n return r != null && typeof r === 'object' && (r as StmtSignal).t === SIG_CONTINUE;\r\n}\r\n","import type { AstProgram } from './acorn-types.js';\nimport type { EvalMeta, EvalScope } from '../types.js';\nimport { fail } from './errors.js';\nimport { assertSafeIdentifier } from './errors.js';\nimport { createScope } from './scope.js';\nimport { evalExpression } from './eval-expression.js';\nimport {\n isBreak,\n isContinue,\n isReturn,\n sigBreak,\n sigContinue,\n sigReturn,\n} from './flow-control.js';\n\nexport { sigReturn, SIG_RETURN } from './flow-control.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AstStmtNode = any;\n\nfunction execSwitch(\n node: AstStmtNode,\n scope: EvalScope,\n meta: EvalMeta\n): unknown {\n const discriminant = evalExpression(node.discriminant, scope, meta);\n let matched = false;\n for (const caseNode of node.cases) {\n if (!matched) {\n if (caseNode.test) {\n if (evalExpression(caseNode.test, scope, meta) !== discriminant) continue;\n matched = true;\n } else {\n matched = true;\n }\n }\n if (matched) {\n for (const stmt of caseNode.consequent) {\n const r = execStatement(stmt, scope, meta);\n if (isReturn(r)) return r;\n if (isBreak(r)) return;\n }\n }\n }\n return;\n}\n\nexport function execStatement(node: AstStmtNode, scope: EvalScope, meta: EvalMeta): unknown {\n switch (node.type) {\n case 'Program': {\n for (const s of (node as AstProgram).body) {\n const r = execStatement(s, scope, meta);\n if (isReturn(r)) return r;\n }\n return;\n }\n\n case 'BlockStatement': {\n const child = createScope(scope.ctx, Object.create(scope.locals));\n for (const s of node.body) {\n const r = execStatement(s, child, meta);\n if (isReturn(r)) return r;\n if (isBreak(r) || isContinue(r)) return r;\n }\n return;\n }\n\n case 'ExpressionStatement':\n return evalExpression(node.expression, scope, meta);\n\n case 'EmptyStatement':\n return;\n\n case 'IfStatement': {\n const ok = !!evalExpression(node.test, scope, meta);\n if (ok) return execStatement(node.consequent, scope, meta);\n if (node.alternate) return execStatement(node.alternate, scope, meta);\n return;\n }\n\n case 'ReturnStatement':\n return sigReturn(\n node.argument ? evalExpression(node.argument, scope, meta) : undefined\n );\n\n case 'ThrowStatement':\n throw evalExpression(node.argument, scope, meta);\n\n case 'BreakStatement':\n return sigBreak();\n\n case 'ContinueStatement':\n return sigContinue();\n\n case 'SwitchStatement':\n return execSwitch(node, scope, meta);\n\n case 'TryStatement': {\n try {\n const r = execStatement(node.block, scope, meta);\n if (isReturn(r)) return r;\n } catch (err) {\n if (node.handler) {\n const child = createScope(scope.ctx, Object.create(scope.locals));\n const param = node.handler.param;\n if (param?.type === 'Identifier') {\n assertSafeIdentifier(param.name);\n child.locals[param.name] = err;\n }\n const r = execStatement(node.handler.body, child, meta);\n if (isReturn(r)) return r;\n } else {\n throw err;\n }\n } finally {\n if (node.finalizer) execStatement(node.finalizer, scope, meta);\n }\n return;\n }\n\n case 'VariableDeclaration': {\n for (const d of node.declarations) {\n if (d.id.type !== 'Identifier') fail('Only simple var names supported');\n const name = d.id.name;\n assertSafeIdentifier(name);\n scope.locals[name] = d.init\n ? evalExpression(d.init, scope, meta)\n : undefined;\n }\n return;\n }\n\n case 'ForStatement': {\n if (node.init) {\n if (node.init.type === 'VariableDeclaration') {\n execStatement(node.init, scope, meta);\n } else {\n evalExpression(node.init, scope, meta);\n }\n }\n for (;;) {\n if (node.test && !evalExpression(node.test, scope, meta)) break;\n const r = execStatement(node.body, scope, meta);\n if (isReturn(r)) return r;\n if (isBreak(r)) break;\n if (isContinue(r)) {\n if (node.update) evalExpression(node.update, scope, meta);\n continue;\n }\n if (node.update) evalExpression(node.update, scope, meta);\n }\n return;\n }\n\n case 'WhileStatement': {\n while (evalExpression(node.test, scope, meta)) {\n const r = execStatement(node.body, scope, meta);\n if (isReturn(r)) return r;\n if (isBreak(r)) break;\n if (isContinue(r)) continue;\n }\n return;\n }\n\n case 'DoWhileStatement': {\n do {\n const r = execStatement(node.body, scope, meta);\n if (isReturn(r)) return r;\n if (isBreak(r)) break;\n if (isContinue(r)) continue;\n } while (evalExpression(node.test, scope, meta));\n return;\n }\n\n case 'ForInStatement': {\n const src = evalExpression(node.right, scope, meta) as\n | Record<string, unknown>\n | null\n | undefined;\n if (src == null || typeof src !== 'object') return;\n for (const key in src) {\n if (node.left.type !== 'Identifier') {\n fail('for-in requires Identifier binding');\n }\n assertSafeIdentifier(node.left.name);\n scope.locals[node.left.name] = key;\n const r = execStatement(node.body, scope, meta);\n if (isReturn(r)) return r;\n if (isBreak(r)) break;\n if (isContinue(r)) continue;\n }\n return;\n }\n\n case 'ForOfStatement': {\n const src = evalExpression(node.right, scope, meta);\n if (src == null || typeof src !== 'object' || !(Symbol.iterator in Object(src))) {\n return;\n }\n for (const value of src as Iterable<unknown>) {\n if (node.left.type === 'Identifier') {\n assertSafeIdentifier(node.left.name);\n scope.locals[node.left.name] = value;\n } else if (node.left.type === 'VariableDeclaration') {\n const d = node.left.declarations[0];\n if (!d || d.id.type !== 'Identifier') fail('for-of requires simple binding');\n assertSafeIdentifier(d.id.name);\n scope.locals[d.id.name] = value;\n } else {\n fail('for-of requires Identifier or var binding');\n }\n const r = execStatement(node.body, scope, meta);\n if (isReturn(r)) return r;\n if (isBreak(r)) break;\n if (isContinue(r)) continue;\n }\n return;\n }\n\n default:\n fail('Unsupported stmt node: ' + node.type);\n }\n}\n","import type { AstProgram } from './acorn-types.js';\r\nimport type { EvalMeta, EvalScope } from '../types.js';\r\nimport { fail } from './errors.js';\r\nimport { assertSafeIdentifier } from './errors.js';\r\nimport { createScope } from './scope.js';\r\nimport { evalExpressionAsync } from './eval-expression-async.js';\r\nimport {\r\n isBreak,\r\n isContinue,\r\n isReturn,\r\n sigBreak,\r\n sigContinue,\r\n sigReturn,\r\n} from './flow-control.js';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ntype AstStmtNode = any;\r\n\r\nasync function execSwitchAsync(\r\n node: AstStmtNode,\r\n scope: EvalScope,\r\n meta: EvalMeta\r\n): Promise<unknown> {\r\n const discriminant = await evalExpressionAsync(node.discriminant, scope, meta);\r\n let matched = false;\r\n for (const caseNode of node.cases) {\r\n if (!matched) {\r\n if (caseNode.test) {\r\n if ((await evalExpressionAsync(caseNode.test, scope, meta)) !== discriminant) {\r\n continue;\r\n }\r\n matched = true;\r\n } else {\r\n matched = true;\r\n }\r\n }\r\n if (matched) {\r\n for (const stmt of caseNode.consequent) {\r\n const r = await execStatementAsync(stmt, scope, meta);\r\n if (isReturn(r)) return r;\r\n if (isBreak(r)) return;\r\n }\r\n }\r\n }\r\n return;\r\n}\r\n\r\nexport async function execStatementAsync(\r\n node: AstStmtNode,\r\n scope: EvalScope,\r\n meta: EvalMeta\r\n): Promise<unknown> {\r\n switch (node.type) {\r\n case 'Program': {\r\n for (const s of (node as AstProgram).body) {\r\n const r = await execStatementAsync(s, scope, meta);\r\n if (isReturn(r)) return r;\r\n }\r\n return;\r\n }\r\n\r\n case 'BlockStatement': {\r\n const child = createScope(scope.ctx, Object.create(scope.locals));\r\n for (const s of node.body) {\r\n const r = await execStatementAsync(s, child, meta);\r\n if (isReturn(r)) return r;\r\n if (isBreak(r) || isContinue(r)) return r;\r\n }\r\n return;\r\n }\r\n\r\n case 'ExpressionStatement':\r\n return await evalExpressionAsync(node.expression, scope, meta);\r\n\r\n case 'EmptyStatement':\r\n return;\r\n\r\n case 'IfStatement': {\r\n const ok = !!(await evalExpressionAsync(node.test, scope, meta));\r\n if (ok) return await execStatementAsync(node.consequent, scope, meta);\r\n if (node.alternate) return await execStatementAsync(node.alternate, scope, meta);\r\n return;\r\n }\r\n\r\n case 'ReturnStatement':\r\n return sigReturn(\r\n node.argument\r\n ? await evalExpressionAsync(node.argument, scope, meta)\r\n : undefined\r\n );\r\n\r\n case 'ThrowStatement':\r\n throw await evalExpressionAsync(node.argument, scope, meta);\r\n\r\n case 'BreakStatement':\r\n return sigBreak();\r\n\r\n case 'ContinueStatement':\r\n return sigContinue();\r\n\r\n case 'SwitchStatement':\r\n return await execSwitchAsync(node, scope, meta);\r\n\r\n case 'TryStatement': {\r\n try {\r\n const r = await execStatementAsync(node.block, scope, meta);\r\n if (isReturn(r)) return r;\r\n } catch (err) {\r\n if (node.handler) {\r\n const child = createScope(scope.ctx, Object.create(scope.locals));\r\n const param = node.handler.param;\r\n if (param?.type === 'Identifier') {\r\n assertSafeIdentifier(param.name);\r\n child.locals[param.name] = err;\r\n }\r\n const r = await execStatementAsync(node.handler.body, child, meta);\r\n if (isReturn(r)) return r;\r\n } else {\r\n throw err;\r\n }\r\n } finally {\r\n if (node.finalizer) await execStatementAsync(node.finalizer, scope, meta);\r\n }\r\n return;\r\n }\r\n\r\n case 'VariableDeclaration': {\r\n for (const d of node.declarations) {\r\n if (d.id.type !== 'Identifier') fail('Only simple var names supported');\r\n const name = d.id.name;\r\n assertSafeIdentifier(name);\r\n scope.locals[name] = d.init\r\n ? await evalExpressionAsync(d.init, scope, meta)\r\n : undefined;\r\n }\r\n return;\r\n }\r\n\r\n case 'ForStatement': {\r\n if (node.init) {\r\n if (node.init.type === 'VariableDeclaration') {\r\n await execStatementAsync(node.init, scope, meta);\r\n } else {\r\n await evalExpressionAsync(node.init, scope, meta);\r\n }\r\n }\r\n for (;;) {\r\n if (node.test && !(await evalExpressionAsync(node.test, scope, meta))) break;\r\n const r = await execStatementAsync(node.body, scope, meta);\r\n if (isReturn(r)) return r;\r\n if (isBreak(r)) break;\r\n if (isContinue(r)) {\r\n if (node.update) await evalExpressionAsync(node.update, scope, meta);\r\n continue;\r\n }\r\n if (node.update) await evalExpressionAsync(node.update, scope, meta);\r\n }\r\n return;\r\n }\r\n\r\n case 'WhileStatement': {\r\n while (await evalExpressionAsync(node.test, scope, meta)) {\r\n const r = await execStatementAsync(node.body, scope, meta);\r\n if (isReturn(r)) return r;\r\n if (isBreak(r)) break;\r\n if (isContinue(r)) continue;\r\n }\r\n return;\r\n }\r\n\r\n case 'DoWhileStatement': {\r\n do {\r\n const r = await execStatementAsync(node.body, scope, meta);\r\n if (isReturn(r)) return r;\r\n if (isBreak(r)) break;\r\n if (isContinue(r)) continue;\r\n } while (await evalExpressionAsync(node.test, scope, meta));\r\n return;\r\n }\r\n\r\n case 'ForInStatement': {\r\n const src = (await evalExpressionAsync(node.right, scope, meta)) as\r\n | Record<string, unknown>\r\n | null\r\n | undefined;\r\n if (src == null || typeof src !== 'object') return;\r\n for (const key in src) {\r\n if (node.left.type !== 'Identifier') fail('for-in requires Identifier binding');\r\n assertSafeIdentifier(node.left.name);\r\n scope.locals[node.left.name] = key;\r\n const r = await execStatementAsync(node.body, scope, meta);\r\n if (isReturn(r)) return r;\r\n if (isBreak(r)) break;\r\n if (isContinue(r)) continue;\r\n }\r\n return;\r\n }\r\n\r\n case 'ForOfStatement': {\r\n const src = await evalExpressionAsync(node.right, scope, meta);\r\n if (src == null || typeof src !== 'object' || !(Symbol.iterator in Object(src))) {\r\n return;\r\n }\r\n for (const value of src as Iterable<unknown>) {\r\n if (node.left.type === 'Identifier') {\r\n assertSafeIdentifier(node.left.name);\r\n scope.locals[node.left.name] = value;\r\n } else if (node.left.type === 'VariableDeclaration') {\r\n const d = node.left.declarations[0];\r\n if (!d || d.id.type !== 'Identifier') fail('for-of requires simple binding');\r\n assertSafeIdentifier(d.id.name);\r\n scope.locals[d.id.name] = value;\r\n } else {\r\n fail('for-of requires Identifier or var binding');\r\n }\r\n const r = await execStatementAsync(node.body, scope, meta);\r\n if (isReturn(r)) return r;\r\n if (isBreak(r)) break;\r\n if (isContinue(r)) continue;\r\n }\r\n return;\r\n }\r\n\r\n default:\r\n fail('Unsupported stmt node: ' + node.type);\r\n }\r\n}\r\n","import type { AstExpression, AstProgram } from './acorn-types.js';\nimport { createScope } from './scope.js';\nimport { evalExpression } from './eval-expression.js';\nimport { evalExpressionAsync } from './eval-expression-async.js';\nimport { execStatement, SIG_RETURN } from './exec-statement.js';\nimport { execStatementAsync } from './exec-statement-async.js';\nimport { logError, WarnCodes } from '../shared/warn.js';\n\nexport function evalInCtxAst(\n ast: AstExpression,\n ctx: Record<string, unknown>,\n $event: unknown,\n $el: Node | null,\n debugLabel = ''\n): unknown {\n try {\n const locals = Object.create(null);\n locals.$event = $event;\n locals.$el = $el;\n const scope = createScope(ctx, locals);\n return evalExpression(ast, scope, { debugLabel });\n } catch (err) {\n logError(WarnCodes.AST_EVAL, err, {\n label: debugLabel || 'expression',\n });\n return undefined;\n }\n}\n\nexport function runInCtxAst(\n programAst: AstProgram,\n ctx: Record<string, unknown>,\n $event: unknown,\n $el: Node | null,\n debugLabel = ''\n): unknown {\n try {\n const locals = Object.create(null);\n locals.$event = $event;\n locals.$el = $el;\n const scope = createScope(ctx, locals);\n const r = execStatement(programAst, scope, { debugLabel }) as { t?: symbol; v?: unknown } | undefined;\n return r && r.t === SIG_RETURN ? r.v : r;\n } catch (err) {\n logError(WarnCodes.AST_STMT, err, {\n label: debugLabel || 'statement',\n });\n return undefined;\n }\n}\n\nexport async function runInCtxAstAsync(\n programAst: AstProgram,\n ctx: Record<string, unknown>,\n $event: unknown,\n $el: Node | null,\n debugLabel = ''\n): Promise<unknown> {\n try {\n const locals = Object.create(null);\n locals.$event = $event;\n locals.$el = $el;\n const scope = createScope(ctx, locals);\n const r = (await execStatementAsync(programAst, scope, {\n debugLabel,\n })) as { t?: symbol; v?: unknown } | undefined;\n return r && r.t === SIG_RETURN ? r.v : r;\n } catch (err) {\n logError(WarnCodes.AST_STMT, err, {\n label: debugLabel || 'statement',\n });\n return undefined;\n }\n}\n\nexport async function evalInCtxAstAsync(\n ast: AstExpression,\n ctx: Record<string, unknown>,\n $event: unknown,\n $el: Node | null,\n debugLabel = ''\n): Promise<unknown> {\n try {\n const locals = Object.create(null);\n locals.$event = $event;\n locals.$el = $el;\n const scope = createScope(ctx, locals);\n return await evalExpressionAsync(ast, scope, { debugLabel });\n } catch (err) {\n logError(WarnCodes.AST_EVAL, err, {\n label: debugLabel || 'expression',\n });\n return undefined;\n }\n}\n","import { effect } from '../reactivity/effect.js';\nimport type { EffectRunner } from '../types.js';\nimport type { SkyDomNode } from './dom-augment.js';\n\nexport function skyNode(node: Node): SkyDomNode {\n return node as SkyDomNode;\n}\n\nexport function register(node: Node, fn: () => void): void {\n (skyNode(node).__skyCleanup ??= []).push(fn);\n}\n\nexport function cleanup(node: Node): void {\n skyNode(node).__skyCleanup?.forEach((fn) => fn());\n if (node.childNodes) Array.from(node.childNodes).forEach(cleanup);\n}\n\nexport function autoEffect(node: Node, fn: () => void): EffectRunner {\n const runner = effect(fn);\n register(node, () => runner.stop());\n return runner;\n}\n","import { unref } from '../reactivity/ref-flags.js';\n\nexport function normalizeClass(val: unknown): string {\n if (!val) return '';\n if (typeof val === 'string') return val;\n if (Array.isArray(val))\n return val.filter(Boolean).map(normalizeClass).join(' ');\n if (typeof val === 'object')\n return Object.keys(val as Record<string, unknown>)\n .filter((k) => (val as Record<string, unknown>)[k])\n .join(' ');\n return '';\n}\n\nexport function normalizeStyle(val: unknown): string | Record<string, unknown> {\n if (!val) return {};\n if (typeof val === 'string') return val;\n if (typeof val === 'object') return val as Record<string, unknown>;\n return {};\n}\n\nexport function isTextInputLike(el: Element): boolean {\n return (\n el.nodeType === 1 &&\n (el.tagName === 'INPUT' ||\n el.tagName === 'TEXTAREA' ||\n el.tagName === 'SELECT')\n );\n}\n\nexport function isCustomElement(el: Element): boolean {\n return el.tagName.includes('-');\n}\n\nexport function deepTrack(val: unknown, seen = new Set<object>()): void {\n val = unref(val);\n if (!val || typeof val !== 'object' || seen.has(val)) return;\n seen.add(val);\n if (Array.isArray(val)) {\n val.length;\n for (let i = 0; i < val.length; i++) deepTrack(val[i], seen);\n } else {\n const record = val as Record<string, unknown>;\n for (const k in record) deepTrack(record[k], seen);\n }\n}\n\nexport function cloneShallow(val: unknown): unknown {\n val = unref(val);\n if (Array.isArray(val)) return val.slice();\n if (val && typeof val === 'object') return { ...(val as object) };\n return val;\n}\n","import type { TextTemplateToken } from '../types.js';\nimport { compileExpr } from '../ast/parser.js';\nimport { evalInCtxAst } from '../ast/context-eval.js';\n\nexport function compileTextTemplate(raw: string): (\n ctx: Record<string, unknown>,\n $el: Node | null\n) => string {\n const tokens: TextTemplateToken[] = [];\n let last = 0;\n\n raw.replace(/{{(.*?)}}/g, (m, expr: string, idx: number) => {\n if (idx > last) tokens.push({ t: 'text', v: raw.slice(last, idx) });\n tokens.push({ t: 'expr', ast: compileExpr(expr) });\n last = idx + m.length;\n return m;\n });\n\n if (last < raw.length) tokens.push({ t: 'text', v: raw.slice(last) });\n\n return function render(ctx, $el) {\n let out = '';\n for (const tok of tokens) {\n if (tok.t === 'text') out += tok.v;\n else {\n const v = evalInCtxAst(tok.ast, ctx, undefined, $el, 'text');\n out += v == null ? '' : String(v);\n }\n }\n return out;\n };\n}\n","import type { ForListItem } from '../types.js';\n\nexport function kebabToCamel(s: string): string {\n return s.replace(/-([a-z])/g, (_, c: string) => c.toUpperCase());\n}\n\nexport function parseForAlias(lhsRaw: string): { item: string; index: string | null } {\n const lhs = (lhsRaw || '').trim();\n\n const tuple = lhs.match(\n /^\\(\\s*([A-Za-z_$][\\w$]*)\\s*,\\s*([A-Za-z_$][\\w$]*)\\s*\\)$/\n );\n if (tuple) return { item: tuple[1]!, index: tuple[2]! };\n\n const single = lhs.match(/^([A-Za-z_$][\\w$]*)$/);\n if (single) return { item: single[1]!, index: null };\n\n throw new Error(\n 'sky-for syntax error. Use `item in items` or `(item, index) in items`'\n );\n}\n\n/** Convert any `sky-for` source into iterable rows. */\nexport function normalizeForSource(\n source: unknown,\n indexAlias: string | null\n): ForListItem[] {\n if (source === null || source === undefined) {\n return [];\n }\n\n if (Array.isArray(source)) {\n return source.map((value, index) => ({\n value,\n key: index,\n extra: indexAlias ? { [indexAlias]: index } : {},\n }));\n }\n\n if (typeof source === 'number' && !Number.isNaN(source)) {\n const items: ForListItem[] = [];\n const n = Math.floor(Math.abs(source));\n for (let i = 0; i < n; i++) {\n items.push({\n value: i,\n key: i,\n extra: indexAlias ? { [indexAlias]: i } : {},\n });\n }\n return items;\n }\n\n if (typeof source === 'string') {\n return Array.from(source).map((char, index) => ({\n value: char,\n key: index,\n extra: indexAlias ? { [indexAlias]: index } : {},\n }));\n }\n\n if (typeof source === 'object') {\n const record = source as Record<string, unknown>;\n const keys = Object.keys(record);\n return keys.map((key, index) => ({\n value: record[key],\n key,\n extra: {\n $key: key,\n ...(indexAlias ? { [indexAlias]: index } : {}),\n },\n }));\n }\n\n return [\n {\n value: source,\n key: 0,\n extra: indexAlias ? { [indexAlias]: 0 } : {},\n },\n ];\n}\n","import { kebabToCamel } from './for-utils.js';\n\nconst PROP_NAME_CACHE = new WeakMap<Function, Map<string, string>>();\n\nexport function buildPropMapFor(el: Element): Map<string, string> {\n const map = new Map<string, string>();\n let proto: object | null = el;\n\n while (proto && proto !== Object.prototype) {\n for (const k of Object.getOwnPropertyNames(proto)) {\n map.set(k.toLowerCase(), k);\n }\n proto = Object.getPrototypeOf(proto);\n }\n return map;\n}\n\nexport function resolveDomPropName(el: Element, raw: string): string {\n if (raw.includes('-')) return kebabToCamel(raw);\n\n const lower = raw.toLowerCase();\n let map = PROP_NAME_CACHE.get(el.constructor as Function);\n if (!map) {\n map = buildPropMapFor(el);\n PROP_NAME_CACHE.set(el.constructor as Function, map);\n }\n\n return map.get(lower) ?? raw;\n}\n","export const NODE_ELEMENT = 1;\r\nexport const NODE_TEXT = 3;\r\n\r\n/** Element node (browser + linkedom; no global `HTMLElement` required). */\r\nexport function isElement(node: Node): node is Element {\r\n return node.nodeType === NODE_ELEMENT;\r\n}\r\n\r\nexport function isTextNode(node: Node): node is Text {\r\n return node.nodeType === NODE_TEXT;\r\n}\r\n\r\n/** `style` / `dataset` / `className` bindings (DOM lib `Element` omits these). */\r\nexport type HtmlLikeElement = Element & {\r\n style: CSSStyleDeclaration;\r\n dataset: DOMStringMap;\r\n className: string;\r\n innerHTML: string;\r\n};\r\n\r\nexport function asHtmlEl(node: Element): HtmlLikeElement {\r\n return node as HtmlLikeElement;\r\n}\r\n\r\nexport function tagName(el: Element): string {\r\n return el.tagName.toUpperCase();\r\n}\r\n\r\nexport function inputType(el: Element): string {\r\n return (el.getAttribute('type') || 'text').toLowerCase();\r\n}\r\n\r\ntype InputLike = {\r\n checked?: boolean;\r\n value?: string;\r\n};\r\n\r\nexport function inputField(el: Element): InputLike {\r\n return el as InputLike;\r\n}\r\n\r\nexport function createComment(ref: Node, data: string): Comment {\r\n const doc = ref.ownerDocument;\r\n if (!doc) {\r\n throw new Error('[Sky] Node has no ownerDocument');\r\n }\r\n return doc.createComment(data);\r\n}\r\n","export const SKY_MODEL_MODIFIERS = new Set(['lazy', 'number', 'trim']);\r\n\r\nexport type SkyModelBinding = {\r\n key: string;\r\n /** Custom-element prop (`sky-model:foo` / `sky-model.foo`); default `modelValue`. */\r\n arg: string | null;\r\n modifiers: string[];\r\n /** Modifier segments present on the attribute but not supported. */\r\n unknownModifiers: string[];\r\n};\r\n\r\nfunction unknownModifierSegments(parts: string[]): string[] {\r\n return parts.filter((p) => !SKY_MODEL_MODIFIERS.has(p));\r\n}\r\n\r\n/** Parse `sky-model`, `sky-model.lazy`, `sky-model:title`, `sky-model:title.number`, etc. */\r\nexport function parseSkyModelAttr(\r\n attrName: string,\r\n value: string\r\n): SkyModelBinding | null {\r\n const key = value.trim();\r\n if (!key || !/^[A-Za-z_$][\\w$]*$/.test(key)) {\r\n return null;\r\n }\r\n\r\n if (attrName === 'sky-model') {\r\n return { key, arg: null, modifiers: [], unknownModifiers: [] };\r\n }\r\n\r\n let rest: string | null = null;\r\n if (attrName.startsWith('sky-model:')) {\r\n rest = attrName.slice('sky-model:'.length);\r\n } else if (attrName.startsWith('sky-model.')) {\r\n rest = attrName.slice('sky-model.'.length);\r\n } else {\r\n return null;\r\n }\r\n\r\n if (!rest) {\r\n return { key, arg: null, modifiers: [], unknownModifiers: [] };\r\n }\r\n\r\n const parts = rest.split('.').filter((p) => p.length > 0);\r\n if (parts.length === 0) {\r\n return { key, arg: null, modifiers: [], unknownModifiers: [] };\r\n }\r\n\r\n const first = parts[0]!;\r\n if (SKY_MODEL_MODIFIERS.has(first)) {\r\n return {\r\n key,\r\n arg: null,\r\n modifiers: normalizeSkyModelModifiers(parts),\r\n unknownModifiers: unknownModifierSegments(parts),\r\n };\r\n }\r\n\r\n return {\r\n key,\r\n arg: first,\r\n modifiers: normalizeSkyModelModifiers(parts.slice(1)),\r\n unknownModifiers: unknownModifierSegments(parts.slice(1)),\r\n };\r\n}\r\n\r\nexport function isSkyModelAttr(attrName: string): boolean {\r\n return (\r\n attrName === 'sky-model' ||\r\n attrName.startsWith('sky-model.') ||\r\n attrName.startsWith('sky-model:')\r\n );\r\n}\r\n\r\nexport function normalizeSkyModelModifiers(modifiers: string[]): string[] {\r\n const out: string[] = [];\r\n for (const m of modifiers) {\r\n if (SKY_MODEL_MODIFIERS.has(m) && !out.includes(m)) {\r\n out.push(m);\r\n }\r\n }\r\n return out;\r\n}\r\n\r\n/** Apply `.trim` / `.number` when writing from the DOM to context (Vue-like). */\r\nexport function coerceModelWriteValue(\r\n value: unknown,\r\n modifiers: string[]\r\n): unknown {\r\n const mods = normalizeSkyModelModifiers(modifiers);\r\n let v = value;\r\n\r\n if (mods.includes('trim') && typeof v === 'string') {\r\n v = v.trim();\r\n }\r\n\r\n if (mods.includes('number')) {\r\n if (v === '' || v == null) {\r\n return '';\r\n }\r\n const n = typeof v === 'number' ? v : Number(v);\r\n return Number.isNaN(n) ? v : n;\r\n }\r\n\r\n return v;\r\n}\r\n\r\n/** Push context value onto a custom-element property. */\r\nexport function coerceModelPropValue(\r\n value: unknown,\r\n modifiers: string[]\r\n): unknown {\r\n const v = value == null ? undefined : value;\r\n const mods = normalizeSkyModelModifiers(modifiers);\r\n if (mods.includes('number') && v !== '' && v != null) {\r\n const n = typeof v === 'number' ? v : Number(v);\r\n return Number.isNaN(n) ? v : n;\r\n }\r\n return v;\r\n}\r\n","import { isRef, unref } from '../reactivity/ref-flags.js';\r\nimport { inputField, inputType, tagName } from './dom.js';\r\nimport { coerceModelWriteValue, normalizeSkyModelModifiers } from './model-parse.js';\r\n\r\nexport function bindSkyModel(\r\n el: Element,\r\n ctx: Record<string, unknown>,\r\n key: string,\r\n modifiers: string[] = []\r\n): { event: string; read: () => void } {\r\n const mods = normalizeSkyModelModifiers(modifiers);\r\n const field = inputField(el);\r\n const tag = tagName(el);\r\n const type = inputType(el);\r\n\r\n if (tag === 'INPUT' && type === 'checkbox') {\r\n return {\r\n event: 'change',\r\n read: () => {\r\n field.checked = Boolean(unref(ctx[key]));\r\n },\r\n };\r\n }\r\n\r\n if (tag === 'INPUT' && type === 'radio') {\r\n return {\r\n event: 'change',\r\n read: () => {\r\n const v = unref(ctx[key]);\r\n field.checked = field.value === String(v ?? '');\r\n },\r\n };\r\n }\r\n\r\n if (tag === 'SELECT') {\r\n return {\r\n event: 'change',\r\n read: () => {\r\n const v = unref(ctx[key]);\r\n field.value = v == null ? '' : String(v);\r\n },\r\n };\r\n }\r\n\r\n if (tag === 'INPUT' || tag === 'TEXTAREA') {\r\n const event = mods.includes('lazy') ? 'change' : 'input';\r\n return {\r\n event,\r\n read: () => {\r\n const v = unref(ctx[key]);\r\n const str = v == null ? '' : String(v);\r\n if (field.value !== str) field.value = str;\r\n },\r\n };\r\n }\r\n\r\n return { event: 'input', read: () => {} };\r\n}\r\n\r\nexport function readModelValue(el: Element): unknown {\r\n const field = inputField(el);\r\n if (tagName(el) === 'INPUT' && inputType(el) === 'checkbox') return field.checked;\r\n if (tagName(el) === 'INPUT' && inputType(el) === 'radio') return field.value;\r\n if (tagName(el) === 'SELECT') return field.value;\r\n if (tagName(el) === 'INPUT' || tagName(el) === 'TEXTAREA') return field.value;\r\n return undefined;\r\n}\r\n\r\nexport function writeModelValue(\r\n ctx: Record<string, unknown>,\r\n key: string,\r\n el: Element,\r\n value: unknown,\r\n modifiers: string[] = []\r\n): void {\r\n const field = inputField(el);\r\n if (tagName(el) === 'INPUT' && inputType(el) === 'radio' && !field.checked) {\r\n return;\r\n }\r\n const coerced = coerceModelWriteValue(value, modifiers);\r\n const cur = ctx[key];\r\n if (isRef(cur)) cur.value = coerced;\r\n else ctx[key] = coerced;\r\n}\r\n","import { unref } from '../reactivity/ref-flags.js';\r\nimport { coerceModelPropValue, normalizeSkyModelModifiers } from './model-parse.js';\r\nimport { resolveDomPropName } from './prop-map.js';\r\nimport { writeModelValue } from './model.js';\r\n\r\nexport type CustomModelBinding = {\r\n prop: string;\r\n eventName: string;\r\n read: () => void;\r\n onUpdate: (e: Event) => void;\r\n};\r\n\r\nexport function resolveModelPropAndEvent(\r\n el: Element,\r\n arg: string | null\r\n): { prop: string; eventName: string } {\r\n const prop = arg ? resolveDomPropName(el, arg) : 'modelValue';\r\n return { prop, eventName: `update:${prop}` };\r\n}\r\n\r\nexport function bindCustomSkyModel(\r\n el: Element,\r\n ctx: Record<string, unknown>,\r\n key: string,\r\n arg: string | null,\r\n modifiers: string[] = []\r\n): CustomModelBinding {\r\n const mods = normalizeSkyModelModifiers(modifiers);\r\n const { prop, eventName } = resolveModelPropAndEvent(el, arg);\r\n const target = el as unknown as Record<string, unknown>;\r\n\r\n const read = () => {\r\n target[prop] = coerceModelPropValue(unref(ctx[key]), mods);\r\n };\r\n\r\n const onUpdate = (e: Event) => {\r\n const ce = e as CustomEvent;\r\n let val: unknown = ce.detail;\r\n if (val === undefined && e.target) {\r\n val = (e.target as unknown as Record<string, unknown>)[prop];\r\n }\r\n writeModelValue(ctx, key, el, val, mods);\r\n };\r\n\r\n return { prop, eventName, read, onUpdate };\r\n}\r\n","export type EventBinding = {\r\n event: string;\r\n modifiers: string[];\r\n code: string;\r\n};\r\n\r\nexport type ListenerOptions = boolean | AddEventListenerOptions;\r\n\r\nconst LISTENER_OPTION_MODS = new Set(['capture', 'passive']);\r\nconst DOM_EVENT_MODS = new Set([\r\n 'prevent',\r\n 'stop',\r\n 'self',\r\n 'once',\r\n 'exact',\r\n 'capture',\r\n 'passive',\r\n 'ctrl',\r\n 'alt',\r\n 'shift',\r\n 'meta',\r\n]);\r\n\r\nconst WRAP_MODS = DOM_EVENT_MODS;\r\n\r\n/** Maps `.capture` / `.passive` modifiers to `addEventListener` options. */\r\nexport function getListenerOptions(modifiers: string[]): ListenerOptions {\r\n const opts: AddEventListenerOptions = {};\r\n if (modifiers.includes('capture')) opts.capture = true;\r\n if (modifiers.includes('passive')) opts.passive = true;\r\n return Object.keys(opts).length > 0 ? opts : false;\r\n}\r\n\r\nconst KEY_ALIAS: Record<string, string> = {\r\n enter: 'Enter',\r\n tab: 'Tab',\r\n delete: 'Delete',\r\n del: 'Delete',\r\n esc: 'Escape',\r\n escape: 'Escape',\r\n space: ' ',\r\n up: 'ArrowUp',\r\n down: 'ArrowDown',\r\n left: 'ArrowLeft',\r\n right: 'ArrowRight',\r\n};\r\n\r\nfunction isKeyLikeModifier(mod: string): boolean {\r\n if (WRAP_MODS.has(mod)) return false;\r\n return mod.length >= 1;\r\n}\r\n\r\nexport function getKeyModifiers(modifiers: string[]): string[] {\r\n return modifiers.filter(isKeyLikeModifier);\r\n}\r\n\r\nconst KNOWN_EVENT_MODIFIERS = new Set([\r\n ...DOM_EVENT_MODS,\r\n ...Object.keys(KEY_ALIAS),\r\n 'ctrl',\r\n 'alt',\r\n 'shift',\r\n 'meta',\r\n]);\r\n\r\n/** Modifiers on `@event.foo` that are not recognized (for dev warnings). */\r\nexport function getUnknownEventModifiers(modifiers: string[]): string[] {\r\n return modifiers.filter((m) => {\r\n if (KNOWN_EVENT_MODIFIERS.has(m)) return false;\r\n if (/^[a-z]$/i.test(m)) return false;\r\n return true;\r\n });\r\n}\r\n\r\nfunction systemModifierActive(e: KeyboardEvent, mod: string): boolean {\r\n switch (mod) {\r\n case 'ctrl':\r\n return e.ctrlKey;\r\n case 'alt':\r\n return e.altKey;\r\n case 'shift':\r\n return e.shiftKey;\r\n case 'meta':\r\n return e.metaKey;\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nfunction keyModifierMatches(e: KeyboardEvent, mod: string): boolean {\r\n if (['ctrl', 'alt', 'shift', 'meta'].includes(mod)) {\r\n return systemModifierActive(e, mod);\r\n }\r\n const lower = mod.toLowerCase();\r\n const want = KEY_ALIAS[lower] ?? mod;\r\n if (e.key === want) return true;\r\n if (e.code === want) return true;\r\n if (want.length === 1 && e.key.toLowerCase() === want.toLowerCase()) return true;\r\n if (/^[a-z]$/i.test(want) && e.code === `Key${want.toUpperCase()}`) return true;\r\n return false;\r\n}\r\n\r\nexport function parseOnEventAttr(attrName: string): EventBinding | null {\r\n if (!attrName.startsWith('on') || attrName.length <= 2) return null;\r\n const event = attrName.slice(2);\r\n return { event, modifiers: [], code: '' };\r\n}\r\n\r\nexport function parseAtEventAttr(attrName: string, code: string): EventBinding | null {\r\n if (!attrName.startsWith('@')) return null;\r\n const parts = attrName.slice(1).split('.');\r\n const event = parts[0];\r\n if (!event) return null;\r\n return { event, modifiers: parts.slice(1), code };\r\n}\r\n\r\nexport function wrapEventHandler(\r\n handler: (e: Event) => void,\r\n modifiers: string[],\r\n node: Node\r\n): (e: Event) => void {\r\n let wrapped = handler;\r\n if (modifiers.includes('once')) {\r\n wrapped = ((fn) => {\r\n let called = false;\r\n return (e: Event) => {\r\n if (called) return;\r\n called = true;\r\n fn(e);\r\n };\r\n })(wrapped);\r\n }\r\n const keyMods = getKeyModifiers(modifiers);\r\n\r\n return (e: Event) => {\r\n if (modifiers.includes('self') && e.target !== node) return;\r\n if (modifiers.includes('exact')) {\r\n if (e.target !== node) return;\r\n if (e instanceof MouseEvent && e.button !== 0) return;\r\n }\r\n if (keyMods.length > 0 && 'key' in e) {\r\n const ke = e as KeyboardEvent;\r\n for (const mod of keyMods) {\r\n if (!keyModifierMatches(ke, mod)) return;\r\n }\r\n }\r\n if (modifiers.includes('prevent')) e.preventDefault();\r\n if (modifiers.includes('stop')) e.stopPropagation();\r\n wrapped(e);\r\n };\r\n}\r\n","export type CompileMode = 'client' | 'ssr';\r\n\r\nlet mode: CompileMode = 'client';\r\n\r\nexport function getCompileMode(): CompileMode {\r\n return mode;\r\n}\r\n\r\nexport function setCompileMode(next: CompileMode): void {\r\n mode = next;\r\n}\r\n\r\nexport function runInCompileMode<T>(next: CompileMode, fn: () => T): T {\r\n const prev = mode;\r\n mode = next;\r\n try {\r\n return fn();\r\n } finally {\r\n mode = prev;\r\n }\r\n}\r\n","import type { AstExpression } from '../ast/acorn-types.js';\nimport { compileExpr, compileStmt } from '../ast/parser.js';\nimport { evalInCtxAst, runInCtxAst, runInCtxAstAsync } from '../ast/context-eval.js';\nimport { isRef, unref } from '../reactivity/ref-flags.js';\nimport { ref } from '../reactivity/ref.js';\nimport { autoEffect, cleanup, register } from './registry.js';\nimport {\n normalizeClass,\n normalizeStyle,\n isTextInputLike,\n isCustomElement,\n deepTrack,\n cloneShallow,\n} from './normalize.js';\nimport { compileTextTemplate } from './text-template.js';\nimport { resolveDomPropName } from './prop-map.js';\nimport { normalizeForSource, parseForAlias } from './for-utils.js';\nimport { bindSkyModel, readModelValue, writeModelValue } from './model.js';\nimport { bindCustomSkyModel } from './model-custom.js';\nimport { isSkyModelAttr, parseSkyModelAttr } from './model-parse.js';\nimport {\n parseAtEventAttr,\n parseOnEventAttr,\n wrapEventHandler,\n getListenerOptions,\n getUnknownEventModifiers,\n type EventBinding,\n} from './events.js';\nimport { logError, warn, warnOnce, WarnCodes } from '../shared/warn.js';\nimport { effect } from '../reactivity/effect.js';\nimport { getCompileMode } from './compile-mode.js';\nimport { asHtmlEl, createComment, isElement, isTextNode } from './dom.js';\nimport type { SkyIfElement } from './dom-augment.js';\n\ntype IfChainItem = {\n isElse: boolean;\n expAst: AstExpression | null;\n tpl: Node;\n};\n\ntype ForBlock = {\n el: Element;\n ctx: Record<string, unknown>;\n};\n\nfunction warnUnknownEventModifiers(\n node: Element,\n binding: EventBinding,\n label: string\n): void {\n for (const mod of getUnknownEventModifiers(binding.modifiers)) {\n warnOnce(\n WarnCodes.EVENT_UNKNOWN_MODIFIER,\n { mod, event: binding.event },\n { element: node, label }\n );\n }\n}\n\nfunction runHandler(\n code: string,\n ctx: Record<string, unknown>,\n node: Element,\n label: string,\n e: Event\n): void {\n const program = compileStmt(code);\n const handlerUsesAwait = /\\bawait\\b/.test(code);\n if (handlerUsesAwait) {\n void runInCtxAstAsync(program, ctx, e, node, label).catch((err) =>\n logError(WarnCodes.HANDLER_RUNTIME, err, { element: node, label })\n );\n } else {\n runInCtxAst(program, ctx, e, node, label);\n }\n}\n\nfunction compileTextNode(node: Text, ctx: Record<string, unknown>): void {\n const raw = node.nodeValue ?? '';\n if (!raw.includes('{{')) return;\n const render = compileTextTemplate(raw);\n bindReactive(node, () => {\n node.nodeValue = render(ctx, node.parentElement);\n });\n}\n\nfunction compileChildren(parent: ParentNode, ctx: Record<string, unknown>): void {\n for (const child of Array.from(parent.childNodes)) {\n if (isTextNode(child)) {\n compileTextNode(child, ctx);\n } else if (isElement(child)) {\n compileNode(child, ctx);\n }\n }\n}\n\nfunction bindReactive(\n node: Node,\n fn: () => void,\n opts?: { once?: boolean }\n): void {\n if (getCompileMode() === 'ssr') {\n fn();\n return;\n }\n if (opts?.once || (isElement(node) && node.hasAttribute('sky-once'))) {\n if (isElement(node)) node.removeAttribute('sky-once');\n const runner = effect(() => {\n fn();\n runner.stop();\n });\n register(node, () => runner.stop());\n return;\n }\n autoEffect(node, fn);\n}\n\nexport function compileNode(node: Element, ctx: Record<string, unknown>) {\n if (!isElement(node)) return;\n\n const IF_ATTRS = [\"sky-if\", \"v-if\", \"w-if\"];\n const ELSEIF_ATTRS = [\"sky-else-if\", \"v-else-if\", \"w-else-if\"];\n const ELSE_ATTRS = [\"sky-else\", \"v-else\", \"w-else\"];\n\n const hasAnyAttr = (el: Element, names: string[]) =>\n names.some((n) => el.hasAttribute(n));\n const getAnyAttr = (el: Element, names: string[]) => {\n for (const n of names)\n if (el.hasAttribute(n)) return el.getAttribute(n) || '';\n return '';\n };\n const removeAnyAttr = (el: Element, names: string[]) =>\n names.forEach((n) => el.removeAttribute(n));\n\n const nextUsefulSibling = (n: Node | null): Node | null => {\n let cur = n;\n while (cur) {\n if (cur.nodeType === 8) {\n cur = cur.nextSibling;\n continue;\n }\n if (cur.nodeType === 3 && !(cur.nodeValue ?? '').trim()) {\n cur = cur.nextSibling;\n continue;\n }\n return cur;\n }\n return null;\n };\n\n if (hasAnyAttr(node, IF_ATTRS)) {\n const parent = node.parentNode;\n if (!parent) return;\n\n const anchor = createComment(node, 'if-chain');\n parent.insertBefore(anchor, node);\n\n const chain: IfChainItem[] = [];\n let cur: Node | null = node;\n\n while (cur) {\n cur = nextUsefulSibling(cur);\n if (!cur || cur.nodeType !== 1) break;\n const elCur = cur as Element;\n\n const isIf = hasAnyAttr(elCur, IF_ATTRS);\n const isElseIf = hasAnyAttr(elCur, ELSEIF_ATTRS);\n const isElse = hasAnyAttr(elCur, ELSE_ATTRS);\n\n if (!isIf && !isElseIf && !isElse) break;\n if (chain.length > 0 && isIf) break;\n if (chain.length === 0 && !isIf) break;\n if (chain.length > 0 && chain[chain.length - 1]!.isElse) break;\n\n const expStr = isElse\n ? ''\n : getAnyAttr(elCur, IF_ATTRS) || getAnyAttr(elCur, ELSEIF_ATTRS);\n const expAst = expStr ? compileExpr(expStr) : null;\n\n const tpl = elCur.cloneNode(true);\n if (isElement(tpl)) {\n removeAnyAttr(tpl, IF_ATTRS);\n removeAnyAttr(tpl, ELSEIF_ATTRS);\n removeAnyAttr(tpl, ELSE_ATTRS);\n }\n\n chain.push({ isElse: !!isElse, expAst, tpl });\n\n const next = elCur.nextSibling;\n elCur.remove();\n cur = next;\n }\n\n let activeEl: SkyIfElement | null = null;\n\n bindReactive(anchor, () => {\n let matched = false;\n\n for (const item of chain) {\n const ok =\n !matched &&\n (item.isElse ||\n (item.expAst != null &&\n !!evalInCtxAst(item.expAst, ctx, undefined, anchor, 'if')));\n if (!ok) continue;\n\n matched = true;\n\n if (!activeEl || activeEl.__skyIfTpl !== item.tpl) {\n if (activeEl) {\n cleanup(activeEl);\n activeEl.remove();\n activeEl = null;\n }\n const el = item.tpl.cloneNode(true) as SkyIfElement;\n el.__skyIfTpl = item.tpl;\n parent.insertBefore(el, anchor.nextSibling);\n compileTree(el, ctx);\n activeEl = el;\n }\n break;\n }\n\n if (!matched && activeEl) {\n cleanup(activeEl);\n activeEl.remove();\n activeEl = null;\n }\n });\n\n return;\n }\n\n if (node.hasAttribute('sky-for')) {\n const exp = node.getAttribute('sky-for') || '';\n const keyExp = node.getAttribute('sky-key');\n\n const parts = exp.split(/\\s+in\\s+/);\n const lhs = parts[0] || '';\n const rhs = parts.slice(1).join(' in ') || '';\n\n let alias: string;\n let indexAlias: string | null;\n try {\n ({ item: alias, index: indexAlias } = parseForAlias(lhs));\n } catch {\n warn(\n WarnCodes.FOR_INVALID_SYNTAX,\n { expr: exp },\n { element: node, label: 'sky-for' }\n );\n return;\n }\n const listAst = compileExpr(rhs.trim());\n const keyAst = keyExp ? compileExpr(keyExp) : null;\n\n if (!keyAst && getCompileMode() !== 'ssr') {\n warnOnce(WarnCodes.FOR_KEY_RECOMMENDED, {}, { element: node, label: 'sky-for' });\n }\n\n const parent = node.parentNode;\n if (!parent) return;\n const anchor = createComment(node, 'sky-for');\n parent.replaceChild(anchor, node);\n\n const template = node.cloneNode(true) as Element;\n template.removeAttribute('sky-for');\n template.removeAttribute('sky-key');\n\n const blocks = new Map<unknown, ForBlock>();\n\n const runList = () => {\n const sourceValue = evalInCtxAst(listAst, ctx, undefined, anchor, 'for');\n const items = normalizeForSource(sourceValue, indexAlias);\n const used = new Set<unknown>();\n const listParent = anchor.parentNode;\n if (!listParent) return;\n\n let insertBefore: ChildNode | null = anchor.nextSibling;\n\n for (let idx = 0; idx < items.length; idx++) {\n const item = items[idx];\n if (!item) continue;\n\n const itemValue = item.value;\n const extra = item.extra;\n\n let blockKey: unknown;\n if (keyAst) {\n const keyCtx = Object.create(ctx) as Record<string, unknown>;\n keyCtx[alias] = itemValue;\n keyCtx.$item = itemValue;\n keyCtx.$index = idx;\n if (indexAlias) keyCtx[indexAlias] = idx;\n Object.assign(keyCtx, extra);\n blockKey = evalInCtxAst(keyAst, keyCtx, undefined, anchor, 'for:key');\n } else {\n blockKey = item.key;\n }\n\n let block = blocks.get(blockKey);\n\n if (!block) {\n const el = template.cloneNode(true) as Element;\n const rowCtx = Object.create(ctx) as Record<string, unknown>;\n rowCtx[alias] = itemValue;\n rowCtx.$item = itemValue;\n rowCtx.$index = idx;\n if (indexAlias) rowCtx[indexAlias] = idx;\n Object.assign(rowCtx, extra);\n\n compileTree(el, rowCtx);\n block = { el, ctx: rowCtx };\n blocks.set(blockKey, block);\n } else {\n block.ctx[alias] = itemValue;\n block.ctx.$item = itemValue;\n block.ctx.$index = idx;\n if (indexAlias) block.ctx[indexAlias] = idx;\n Object.assign(block.ctx, extra);\n }\n\n if (\n block.el.parentNode !== listParent ||\n block.el.nextSibling !== insertBefore\n ) {\n listParent.insertBefore(block.el, insertBefore);\n }\n insertBefore = block.el.nextSibling;\n used.add(blockKey);\n }\n\n blocks.forEach((block, k) => {\n if (!used.has(k)) {\n if (getCompileMode() !== 'ssr') cleanup(block.el);\n block.el.parentNode?.removeChild(block.el);\n blocks.delete(k);\n }\n });\n };\n\n if (getCompileMode() === 'ssr') {\n runList();\n } else {\n autoEffect(anchor, runList);\n }\n\n return;\n }\n\n // sky-ref\n if (node.hasAttribute('sky-ref')) {\n const k = node.getAttribute('sky-ref');\n if (!k) return;\n node.removeAttribute('sky-ref');\n const slot = ctx[k];\n if (isRef(slot)) slot.value = node;\n else ctx[k] = ref(node);\n register(node, () => {\n const cur = ctx[k];\n if (isRef(cur)) cur.value = null;\n });\n }\n\n if (node.hasAttribute('sky-show')) {\n const exp = node.getAttribute('sky-show') || '';\n node.removeAttribute('sky-show');\n const expAst = compileExpr(exp);\n const html = asHtmlEl(node);\n bindReactive(node, () => {\n html.style.display = evalInCtxAst(expAst, ctx, undefined, node, 'show') ? '' : 'none';\n });\n }\n\n if (node.hasAttribute('sky-html')) {\n warnOnce(WarnCodes.SKY_HTML_UNSAFE, {}, { element: node, label: 'sky-html' });\n const exp = node.getAttribute('sky-html') || '';\n node.removeAttribute('sky-html');\n const expAst = compileExpr(exp);\n const htmlEl = asHtmlEl(node);\n bindReactive(node, () => {\n const val = evalInCtxAst(expAst, ctx, undefined, node, 'html');\n htmlEl.innerHTML = val == null ? '' : String(val);\n });\n }\n\n // attribute bindings + events\n const attrs = Array.from(node.attributes);\n\n const modelAttrs = attrs.filter((a) => isSkyModelAttr(a.name));\n if (modelAttrs.length > 1) {\n warnOnce(WarnCodes.MODEL_DUPLICATE, {}, { element: node });\n }\n const modelAttr = modelAttrs[0];\n if (modelAttr) {\n const binding = parseSkyModelAttr(modelAttr.name, modelAttr.value);\n if (!binding) {\n warn(\n WarnCodes.MODEL_INVALID_KEY,\n { value: modelAttr.value },\n { element: node, label: modelAttr.name }\n );\n } else {\n node.removeAttribute(modelAttr.name);\n const { key, arg, modifiers, unknownModifiers } = binding;\n\n if (unknownModifiers.length > 0) {\n warnOnce(\n WarnCodes.MODEL_UNKNOWN_MODIFIER,\n { mods: unknownModifiers.join('.') },\n { element: node, label: modelAttr.name }\n );\n }\n\n if (isCustomElement(node)) {\n const custom = bindCustomSkyModel(node, ctx, key, arg, modifiers);\n bindReactive(node, () => custom.read());\n node.addEventListener(custom.eventName, custom.onUpdate);\n register(node, () =>\n node.removeEventListener(custom.eventName, custom.onUpdate)\n );\n } else {\n if (arg != null) {\n warn(\n WarnCodes.MODEL_ARG_ON_NATIVE,\n { arg, tag: node.tagName.toLowerCase(), key },\n { element: node, label: modelAttr.name }\n );\n }\n const model = bindSkyModel(node, ctx, key, modifiers);\n bindReactive(node, () => model.read());\n const h = () =>\n writeModelValue(ctx, key, node, readModelValue(node), modifiers);\n node.addEventListener(model.event, h);\n register(node, () => node.removeEventListener(model.event, h));\n }\n }\n }\n const isOnAttr = (name: string) => name.startsWith('on') && name.length > 2;\n\n for (const a of attrs) {\n const attrName = a.name;\n const code = a.value;\n\n if (isOnAttr(attrName)) {\n const binding = parseOnEventAttr(attrName);\n if (!binding) continue;\n node.removeAttribute(attrName);\n warnUnknownEventModifiers(node, binding, `on${binding.event}`);\n const opts = getListenerOptions(binding.modifiers);\n const handler = wrapEventHandler(\n (e: Event) => runHandler(code, ctx, node, `on${binding.event}`, e),\n binding.modifiers,\n node\n );\n node.addEventListener(binding.event, handler, opts);\n register(node, () => node.removeEventListener(binding.event, handler, opts));\n continue;\n }\n\n if (attrName.startsWith('@')) {\n const binding = parseAtEventAttr(attrName, code);\n if (!binding) continue;\n node.removeAttribute(attrName);\n warnUnknownEventModifiers(node, binding, `@${binding.event}`);\n const opts = getListenerOptions(binding.modifiers);\n const handler = wrapEventHandler(\n (e: Event) => runHandler(code, ctx, node, `@${binding.event}`, e),\n binding.modifiers,\n node\n );\n node.addEventListener(binding.event, handler, opts);\n register(node, () => node.removeEventListener(binding.event, handler, opts));\n continue;\n }\n\n if (attrName === \":class\" || attrName === \"sky-bind:class\") {\n node.removeAttribute(attrName);\n\n const expAst = compileExpr(code);\n const html = asHtmlEl(node);\n const base =\n html.dataset.baseClass ?? (html.dataset.baseClass = html.className);\n\n bindReactive(node, () => {\n const val = evalInCtxAst(expAst, ctx, undefined, node, 'class');\n const cls = normalizeClass(val);\n html.className = base + (cls ? ' ' + cls : '');\n });\n continue;\n }\n\n if (attrName === \":style\" || attrName === \"sky-bind:style\") {\n node.removeAttribute(attrName);\n\n const expAst = compileExpr(code);\n const html = asHtmlEl(node);\n bindReactive(node, () => {\n const val = normalizeStyle(\n evalInCtxAst(expAst, ctx, undefined, node, 'style')\n );\n if (typeof val === 'string') html.style.cssText = val;\n else {\n const styleObj = val as Record<string, string>;\n for (const k of Object.keys(styleObj)) {\n html.style.setProperty(k, String(styleObj[k]));\n }\n }\n });\n continue;\n }\n\n if (\n attrName.startsWith(\"sky-bind:\") &&\n attrName !== \"sky-bind:class\" &&\n attrName !== \"sky-bind:style\"\n ) {\n node.removeAttribute(attrName);\n\n let prop = attrName.split(':')[1] ?? '';\n prop = resolveDomPropName(node, prop);\n const expAst = compileExpr(code);\n\n if (prop === \"value\" && isTextInputLike(node)) {\n bindReactive(node, () => {\n const v = evalInCtxAst(expAst, ctx, undefined, node, 'bind:value');\n const str = v == null ? \"\" : String(v);\n if (\n typeof document !== 'undefined' &&\n document.activeElement === node\n )\n return;\n if ((node as HTMLInputElement).value !== str) (node as HTMLInputElement).value = str;\n });\n } else {\n bindReactive(node, () => {\n let v = evalInCtxAst(expAst, ctx, undefined, node, `bind:${prop}`);\n\n if (\n isCustomElement(node) &&\n (Array.isArray(v) || (v && typeof v === \"object\"))\n ) {\n deepTrack(v);\n v = cloneShallow(v);\n }\n\n (node as unknown as Record<string, unknown>)[prop] = v;\n });\n }\n continue;\n }\n }\n\n compileChildren(node, ctx);\n}\n\nexport function compileTree(root: ParentNode, ctx: Record<string, unknown>) {\n if (isElement(root)) {\n compileNode(root, ctx);\n return;\n }\n compileChildren(root, ctx);\n}\n","import { compileTree } from './compile-node.js';\n\nexport function mount(root: ParentNode | Element, ctx: Record<string, unknown>) {\n compileTree(root, ctx);\n return ctx;\n}\n","import { reactive } from '../reactivity/reactive.js';\n\nexport function createCtx(exposed: Record<string, unknown> = {}): Record<string, unknown> {\n const ctx = reactive({});\n if (exposed && typeof exposed === \"object\") Object.assign(ctx, exposed);\n return ctx;\n}\n","import type { SetupFn, ReactivityApp } from '../types.js';\nimport { effectScope } from '../reactivity/effect-scope.js';\nimport { clearAstCaches } from '../ast/parser.js';\nimport { getWarnMessage, warn, WarnCodes } from '../shared/warn.js';\nimport { createCtx } from './context.js';\nimport { cleanup } from './registry.js';\nimport { mount } from './mount.js';\n\nexport function createReactivity(setup: SetupFn): ReactivityApp {\n return {\n mount(target, initial = {}) {\n const root =\n typeof target === 'string' ? document.querySelector(target) : target;\n if (!root) {\n const targetLabel =\n typeof target === 'string' ? target : '<element>';\n warn(WarnCodes.MOUNT_TARGET_NOT_FOUND, { target: targetLabel });\n throw new Error(getWarnMessage(WarnCodes.MOUNT_TARGET_NOT_FOUND, { target: targetLabel }));\n }\n\n const scope = effectScope(true);\n return scope.run(() => {\n const exposed = (typeof setup === 'function' ? setup() : setup) || {};\n const ctx = createCtx({ ...initial, ...exposed });\n mount(root as Element, ctx);\n\n return {\n ctx,\n unmount() {\n cleanup(root);\n scope.stop();\n clearAstCaches();\n },\n };\n })!;\n },\n };\n}\n","export type SSRDocument = Document & { toString(): string };\r\n\r\n/** Parse markup into a Document (browser `DOMParser` or optional `linkedom`). */\r\nexport async function parseSSRDocument(markup: string): Promise<SSRDocument> {\r\n if (typeof DOMParser !== 'undefined') {\r\n const doc = new DOMParser().parseFromString(markup, 'text/html');\r\n return doc as SSRDocument;\r\n }\r\n\r\n try {\r\n const { parseHTML } = await import('linkedom');\r\n const { document } = parseHTML(markup);\r\n return document as SSRDocument;\r\n } catch {\r\n throw new Error(\r\n '[Sky SSR] No DOM available. Use in a browser or install optional peer `linkedom`.'\r\n );\r\n }\r\n}\r\n","const ANCHOR_MARKERS = new Set(['sky-for', 'if-chain']);\r\n\r\n/** Remove compiler comment anchors left by `sky-for` / `sky-if` chains. */\r\nexport function stripCompilerCommentAnchors(root: ParentNode): void {\r\n const comments: Comment[] = [];\r\n const walk = (node: Node) => {\r\n for (const child of Array.from(node.childNodes)) {\r\n if (child.nodeType === 8) {\r\n const data = (child as Comment).data.trim();\r\n if (ANCHOR_MARKERS.has(data)) comments.push(child as Comment);\r\n } else if (child.nodeType === 1) {\r\n walk(child);\r\n }\r\n }\r\n };\r\n walk(root);\r\n for (const c of comments) {\r\n c.parentNode?.removeChild(c);\r\n }\r\n}\r\n","import { createCtx } from '../runtime/context.js';\r\nimport { compileTree } from '../runtime/compile-node.js';\r\nimport { runInCompileMode } from '../runtime/compile-mode.js';\r\nimport { parseSSRDocument } from './document.js';\r\nimport { stripCompilerCommentAnchors } from './strip-anchors.js';\r\nimport { getWarnMessage, warn, WarnCodes } from '../shared/warn.js';\r\n\r\nexport type RenderToStringOptions = {\r\n /** CSS selector for the mount root (default: `body`). */\r\n root?: string;\r\n /** Extra properties merged into context before setup exports. */\r\n initial?: Record<string, unknown>;\r\n /** When true, return full `<html>...</html>` instead of root outerHTML only. */\r\n fullDocument?: boolean;\r\n /** Remove `<!--sky-for-->` / `<!--if-chain-->` anchors from output (default: `true`). */\r\n stripAnchors?: boolean;\r\n};\r\n\r\n/**\r\n * One-shot SSR: compiles directives and `{{ }}` without reactive effects.\r\n * Requires browser DOM or optional peer `linkedom` in Node.\r\n */\r\nexport async function renderToString(\r\n markup: string,\r\n ctx: Record<string, unknown>,\r\n options: RenderToStringOptions = {}\r\n): Promise<string> {\r\n const doc = await parseSSRDocument(markup);\r\n const root =\r\n options.root != null\r\n ? doc.querySelector(options.root)\r\n : doc.body;\r\n if (!root) {\r\n const rootSel = options.root ?? 'body';\r\n warn(WarnCodes.SSR_ROOT_NOT_FOUND, { root: rootSel });\r\n throw new Error(getWarnMessage(WarnCodes.SSR_ROOT_NOT_FOUND, { root: rootSel }));\r\n }\r\n\r\n const scope = { ...options.initial, ...ctx };\r\n const reactiveCtx = createCtx(scope);\r\n\r\n runInCompileMode('ssr', () => {\r\n compileTree(root, reactiveCtx);\r\n });\r\n\r\n const stripAnchors = options.stripAnchors !== false;\r\n if (stripAnchors) {\r\n stripCompilerCommentAnchors(root);\r\n if (options.fullDocument && doc.documentElement) {\r\n stripCompilerCommentAnchors(doc.documentElement);\r\n }\r\n }\r\n\r\n if (options.fullDocument) {\r\n return doc.documentElement.outerHTML;\r\n }\r\n return root.nodeType === 1 ? (root as Element).outerHTML : String(root);\r\n}\r\n","import { compileStmt } from '../ast/parser.js';\r\nimport { runInCtxAst, runInCtxAstAsync } from '../ast/context-eval.js';\r\n\r\n/** Run a template event-handler statement string against a context (for tests and tooling). */\r\nexport async function runHandlerCode(\r\n code: string,\r\n ctx: Record<string, unknown>,\r\n $event: unknown = null,\r\n $el: Node | null = null\r\n): Promise<unknown> {\r\n const program = compileStmt(code);\r\n if (/\\bawait\\b/.test(code)) {\r\n return runInCtxAstAsync(program, ctx, $event, $el, 'handler');\r\n }\r\n return runInCtxAst(program, ctx, $event, $el, 'handler');\r\n}\r\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sky.ui/reactivity",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"sideEffects": false,
|
|
9
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE.md"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"import": "./dist/index.js",
|
|
18
|
+
"types": "./dist/index.d.ts"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"clean": "rimraf dist",
|
|
23
|
+
"build": "tsup",
|
|
24
|
+
"check": "tsc --noEmit -p tsconfig.json",
|
|
25
|
+
"test": "npm run build && npm run build:browser && node --test test/*.mjs",
|
|
26
|
+
"build:browser": "node esbuild.config.mjs",
|
|
27
|
+
"watch:browser": "node esbuild.config.mjs --watch",
|
|
28
|
+
"package:extension": "npm run package -w sky-ui-reactivity"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"acorn": "^8.15.0"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"linkedom": ">=0.18.0"
|
|
35
|
+
},
|
|
36
|
+
"peerDependenciesMeta": {
|
|
37
|
+
"linkedom": {
|
|
38
|
+
"optional": true
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"linkedom": "^0.18.12",
|
|
43
|
+
"rimraf": "^6.1.2",
|
|
44
|
+
"tsup": "^8.5.1",
|
|
45
|
+
"typescript": "^5.8.3"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public",
|
|
49
|
+
"registry": "https://registry.npmjs.org/"
|
|
50
|
+
}
|
|
51
|
+
}
|