{"version":3,"sources":["../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts","../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/src/strings.ts","../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts","../node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/src/BitSet.js","../node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/src/Chunk.js","../node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/src/SourceMap.js","../node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/src/utils/guessIndent.js","../node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/src/utils/getRelativePath.js","../node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/src/utils/isObject.js","../node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/src/utils/getLocator.js","../node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/src/utils/Mappings.js","../node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/src/MagicString.js","../src/inspectAttr.ts"],"names":["n","segment","replacement"],"mappings":";;;;;;AAEO,IAAM,KAAA,GAAQ,GAAA,CAAI,UAAA,CAAW,CAAC,CAAA;AAC9B,IAAM,SAAA,GAAY,GAAA,CAAI,UAAA,CAAW,CAAC,CAAA;AAEzC,IAAM,KAAA,GAAQ,kEAAA;AACd,IAAM,SAAA,GAAY,IAAI,UAAA,CAAW,EAAE,CAAA;AACnC,IAAM,SAAA,GAAY,IAAI,UAAA,CAAW,GAAG,CAAA;AAEpC,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACrC,EAAA,MAAM,CAAA,GAAI,KAAA,CAAM,UAAA,CAAW,CAAC,CAAA;AAC5B,EAAA,SAAA,CAAU,CAAC,CAAA,GAAI,CAAA;AACf,EAAA,SAAA,CAAU,CAAC,CAAA,GAAI,CAAA;AACjB;AAwBO,SAAS,aAAA,CAAc,OAAA,EAAuB,GAAA,EAAa,QAAA,EAA0B;AAC1F,EAAA,IAAI,QAAQ,GAAA,GAAM,QAAA;AAElB,EAAA,KAAA,GAAQ,QAAQ,CAAA,GAAK,CAAC,KAAA,IAAS,CAAA,GAAK,IAAI,KAAA,IAAS,CAAA;AACjD,EAAA,GAAG;AACD,IAAA,IAAI,UAAU,KAAA,GAAQ,EAAA;AACtB,IAAA,KAAA,MAAW,CAAA;AACX,IAAA,IAAI,KAAA,GAAQ,GAAG,OAAA,IAAW,EAAA;AAC1B,IAAA,OAAA,CAAQ,KAAA,CAAM,SAAA,CAAU,OAAO,CAAC,CAAA;AAClC,EAAA,CAAA,QAAS,KAAA,GAAQ,CAAA;AAEjB,EAAA,OAAO,GAAA;AACT;ACjDA,IAAM,YAAY,IAAA,GAAO,EAAA;AAGzB,IAAM,EAAA,GACJ,OAAO,WAAA,KAAgB,WAAA,uBACC,WAAA,EAAY,GAChC,OAAO,MAAA,KAAW,WAAA,GAChB;AACE,EAAA,MAAA,CAAO,GAAA,EAAyB;AAC9B,IAAA,MAAM,GAAA,GAAM,OAAO,IAAA,CAAK,GAAA,CAAI,QAAQ,GAAA,CAAI,UAAA,EAAY,IAAI,UAAU,CAAA;AAClE,IAAA,OAAO,IAAI,QAAA,EAAS;AACtB,EAAA;AACF,CAAA,GACA;AACE,EAAA,MAAA,CAAO,GAAA,EAAyB;AAC9B,IAAA,IAAI,GAAA,GAAM,EAAA;AACV,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,QAAQ,CAAA,EAAA,EAAK;AACnC,MAAA,GAAA,IAAO,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,CAAC,CAAC,CAAA;AACnC,IAAA;AACA,IAAA,OAAO,GAAA;AACT,EAAA;AACF,CAAA;AAED,IAAM,eAAN,MAAmB;EAAnB,WAAA,GAAA;AACL,IAAA,IAAA,CAAA,GAAA,GAAM,CAAA;AACN,IAAA,IAAA,CAAQ,GAAA,GAAM,EAAA;AACd,IAAA,IAAA,CAAQ,MAAA,GAAS,IAAI,UAAA,CAAW,SAAS,CAAA;AAAA,EAAA;AAEzC,EAAA,KAAA,CAAM,CAAA,EAAiB;AACrB,IAAA,MAAM,EAAE,QAAO,GAAI,IAAA;AACnB,IAAA,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,GAAI,CAAA;AACrB,IAAA,IAAI,IAAA,CAAK,QAAQ,SAAA,EAAW;AAC1B,MAAA,IAAA,CAAK,GAAA,IAAO,EAAA,CAAG,MAAA,CAAO,MAAM,CAAA;AAC5B,MAAA,IAAA,CAAK,GAAA,GAAM,CAAA;AACb,IAAA;AACF,EAAA;EAEA,KAAA,GAAgB;AACd,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAA,EAAK,GAAA,EAAI,GAAI,IAAA;AAC7B,IAAA,OAAO,GAAA,GAAM,CAAA,GAAI,GAAA,GAAM,EAAA,CAAG,MAAA,CAAO,OAAO,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,GAAI,GAAA;AAC9D,EAAA;AACF,CAAA;ACsCO,SAAS,OAAO,OAAA,EAA8C;AACnE,EAAA,MAAM,MAAA,GAAS,IAAI,YAAA,EAAa;AAChC,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,IAAI,UAAA,GAAa,CAAA;AACjB,EAAA,IAAI,YAAA,GAAe,CAAA;AACnB,EAAA,IAAI,UAAA,GAAa,CAAA;AAEjB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACvC,IAAA,MAAM,IAAA,GAAO,QAAQ,CAAC,CAAA;AACtB,IAAA,IAAI,CAAA,GAAI,CAAA,EAAG,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA;AACjC,IAAA,IAAI,IAAA,CAAK,WAAW,CAAA,EAAG;AAEvB,IAAA,IAAI,SAAA,GAAY,CAAA;AAEhB,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,MAAA,MAAM,OAAA,GAAU,KAAK,CAAC,CAAA;AACtB,MAAA,IAAI,CAAA,GAAI,CAAA,EAAG,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA;AAE7B,MAAA,SAAA,GAAY,aAAA,CAAc,MAAA,EAAQ,OAAA,CAAQ,CAAC,GAAG,SAAS,CAAA;AAEvD,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC1B,MAAA,YAAA,GAAe,aAAA,CAAc,MAAA,EAAQ,OAAA,CAAQ,CAAC,GAAG,YAAY,CAAA;AAC7D,MAAA,UAAA,GAAa,aAAA,CAAc,MAAA,EAAQ,OAAA,CAAQ,CAAC,GAAG,UAAU,CAAA;AACzD,MAAA,YAAA,GAAe,aAAA,CAAc,MAAA,EAAQ,OAAA,CAAQ,CAAC,GAAG,YAAY,CAAA;AAE7D,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC1B,MAAA,UAAA,GAAa,aAAA,CAAc,MAAA,EAAQ,OAAA,CAAQ,CAAC,GAAG,UAAU,CAAA;AAC3D,IAAA;AACF,EAAA;AAEA,EAAA,OAAO,OAAO,KAAA,EAAM;AACtB;;;AC9Ge,IAAM,MAAA,GAAN,MAAM,OAAA,CAAO;AAC3B,EAAA,WAAA,CAAY,GAAA,EAAK;AAChB,IAAA,IAAA,CAAK,OAAO,GAAA,YAAe,OAAA,GAAS,IAAI,IAAA,CAAK,KAAA,KAAU,EAAA;AACxD,EAAA;AAEA,EAAA,GAAA,CAAIA,EAAAA,EAAG;AACN,IAAA,IAAA,CAAK,IAAA,CAAKA,EAAAA,IAAK,CAAC,CAAA,IAAK,MAAMA,EAAAA,GAAI,EAAA,CAAA;AAChC,EAAA;AAEA,EAAA,GAAA,CAAIA,EAAAA,EAAG;AACN,IAAA,OAAO,CAAC,EAAE,IAAA,CAAK,IAAA,CAAKA,MAAK,CAAC,CAAA,GAAK,MAAMA,EAAAA,GAAI,EAAA,CAAA,CAAA;AAC1C,EAAA;AACD,CAAA;ACZe,IAAM,KAAA,GAAN,MAAM,MAAA,CAAM;EAC1B,WAAA,CAAY,KAAA,EAAO,KAAK,OAAA,EAAS;AAChC,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,IAAA,IAAA,CAAK,GAAA,GAAM,GAAA;AACX,IAAA,IAAA,CAAK,QAAA,GAAW,OAAA;AAEhB,IAAA,IAAA,CAAK,KAAA,GAAQ,EAAA;AACb,IAAA,IAAA,CAAK,KAAA,GAAQ,EAAA;AAEb,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,SAAA,GAAY,KAAA;AACjB,IAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AAQP,IAAA;AACN,MAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,MAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACb,IAAA;AACD,EAAA;AAEA,EAAA,UAAA,CAAW,OAAA,EAAS;AACnB,IAAA,IAAA,CAAK,KAAA,IAAS,OAAA;AACf,EAAA;AAEA,EAAA,WAAA,CAAY,OAAA,EAAS;AACpB,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAK,KAAA,GAAQ,OAAA;AAC3B,EAAA;EAEA,KAAA,GAAQ;AACP,IAAA,MAAM,KAAA,GAAQ,IAAI,MAAA,CAAM,IAAA,CAAK,OAAO,IAAA,CAAK,GAAA,EAAK,KAAK,QAAQ,CAAA;AAE3D,IAAA,KAAA,CAAM,QAAQ,IAAA,CAAK,KAAA;AACnB,IAAA,KAAA,CAAM,QAAQ,IAAA,CAAK,KAAA;AACnB,IAAA,KAAA,CAAM,UAAU,IAAA,CAAK,OAAA;AACrB,IAAA,KAAA,CAAM,YAAY,IAAA,CAAK,SAAA;AACvB,IAAA,KAAA,CAAM,SAAS,IAAA,CAAK,MAAA;AAEpB,IAAA,OAAO,KAAA;AACR,EAAA;AAEA,EAAA,QAAA,CAAS,KAAA,EAAO;AACf,IAAA,OAAO,IAAA,CAAK,KAAA,GAAQ,KAAA,IAAS,KAAA,GAAQ,IAAA,CAAK,GAAA;AAC3C,EAAA;AAEA,EAAA,QAAA,CAAS,EAAA,EAAI;AACZ,IAAA,IAAI,KAAA,GAAQ,IAAA;AACZ,IAAA,OAAO,KAAA,EAAO;AACb,MAAA,EAAA,CAAG,KAAK,CAAA;AACR,MAAA,KAAA,GAAQ,KAAA,CAAM,IAAA;AACf,IAAA;AACD,EAAA;AAEA,EAAA,YAAA,CAAa,EAAA,EAAI;AAChB,IAAA,IAAI,KAAA,GAAQ,IAAA;AACZ,IAAA,OAAO,KAAA,EAAO;AACb,MAAA,EAAA,CAAG,KAAK,CAAA;AACR,MAAA,KAAA,GAAQ,KAAA,CAAM,QAAA;AACf,IAAA;AACD,EAAA;EAEA,IAAA,CAAK,OAAA,EAAS,WAAW,WAAA,EAAa;AACrC,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAI,CAAC,WAAA,EAAa;AACjB,MAAA,IAAA,CAAK,KAAA,GAAQ,EAAA;AACb,MAAA,IAAA,CAAK,KAAA,GAAQ,EAAA;AACd,IAAA;AACA,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AAEjB,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA;AAEd,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,WAAA,CAAY,OAAA,EAAS;AACpB,IAAA,IAAA,CAAK,KAAA,GAAQ,UAAU,IAAA,CAAK,KAAA;AAC7B,EAAA;AAEA,EAAA,YAAA,CAAa,OAAA,EAAS;AACrB,IAAA,IAAA,CAAK,KAAA,GAAQ,UAAU,IAAA,CAAK,KAAA;AAC7B,EAAA;EAEA,KAAA,GAAQ;AACP,IAAA,IAAA,CAAK,KAAA,GAAQ,EAAA;AACb,IAAA,IAAA,CAAK,KAAA,GAAQ,EAAA;AACb,IAAA,IAAI,KAAK,MAAA,EAAQ;AAChB,MAAA,IAAA,CAAK,UAAU,IAAA,CAAK,QAAA;AACpB,MAAA,IAAA,CAAK,SAAA,GAAY,KAAA;AACjB,MAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AACf,IAAA;AACD,EAAA;AAEA,EAAA,KAAA,CAAM,KAAA,EAAO;AACZ,IAAA,MAAM,UAAA,GAAa,QAAQ,IAAA,CAAK,KAAA;AAEhC,IAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,GAAG,UAAU,CAAA;AACxD,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,UAAU,CAAA;AAEpD,IAAA,IAAA,CAAK,QAAA,GAAW,cAAA;AAEhB,IAAA,MAAM,WAAW,IAAI,MAAA,CAAM,KAAA,EAAO,IAAA,CAAK,KAAK,aAAa,CAAA;AACzD,IAAA,QAAA,CAAS,QAAQ,IAAA,CAAK,KAAA;AACtB,IAAA,IAAA,CAAK,KAAA,GAAQ,EAAA;AAEb,IAAA,IAAA,CAAK,GAAA,GAAM,KAAA;AAEX,IAAA,IAAI,KAAK,MAAA,EAAQ;AAShB,MAAA,QAAA,CAAS,IAAA,CAAK,IAAI,KAAK,CAAA;AACvB,MAAA,IAAA,CAAK,OAAA,GAAU,EAAA;IAChB,CAAA,MAAO;AACN,MAAA,IAAA,CAAK,OAAA,GAAU,cAAA;AAChB,IAAA;AAEA,IAAA,QAAA,CAAS,OAAO,IAAA,CAAK,IAAA;AACrB,IAAA,IAAI,QAAA,CAAS,IAAA,EAAM,QAAA,CAAS,IAAA,CAAK,QAAA,GAAW,QAAA;AAC5C,IAAA,QAAA,CAAS,QAAA,GAAW,IAAA;AACpB,IAAA,IAAA,CAAK,IAAA,GAAO,QAAA;AAEZ,IAAA,OAAO,QAAA;AACR,EAAA;EAEA,QAAA,GAAW;AACV,IAAA,OAAO,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,KAAA;AACzC,EAAA;AAEA,EAAA,OAAA,CAAQ,EAAA,EAAI;AACX,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,IAAI,EAAE,CAAA;AACtC,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,MAAA,EAAQ,OAAO,IAAA;AAE9B,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,IAAI,EAAE,CAAA;AAE3C,IAAA,IAAI,QAAQ,MAAA,EAAQ;AACnB,MAAA,IAAI,OAAA,KAAY,KAAK,OAAA,EAAS;AAC7B,QAAA,IAAA,CAAK,KAAA,CAAM,KAAK,KAAA,GAAQ,OAAA,CAAQ,MAAM,CAAA,CAAE,IAAA,CAAK,EAAA,EAAI,MAAA,EAAW,IAAI,CAAA;AAChE,QAAA,IAAI,KAAK,MAAA,EAAQ;AAEhB,UAAA,IAAA,CAAK,IAAA,CAAK,OAAA,EAAS,IAAA,CAAK,SAAA,EAAW,IAAI,CAAA;AACxC,QAAA;AACD,MAAA;AACA,MAAA,OAAO,IAAA;IACR,CAAA,MAAO;AACN,MAAA,IAAA,CAAK,IAAA,CAAK,EAAA,EAAI,MAAA,EAAW,IAAI,CAAA;AAE7B,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,IAAI,EAAE,CAAA;AACtC,MAAA,IAAI,IAAA,CAAK,KAAA,CAAM,MAAA,EAAQ,OAAO,IAAA;AAC/B,IAAA;AACD,EAAA;AAEA,EAAA,SAAA,CAAU,EAAA,EAAI;AACb,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,IAAI,EAAE,CAAA;AACtC,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,MAAA,EAAQ,OAAO,IAAA;AAE9B,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,IAAI,EAAE,CAAA;AAE3C,IAAA,IAAI,QAAQ,MAAA,EAAQ;AACnB,MAAA,IAAI,OAAA,KAAY,KAAK,OAAA,EAAS;AAC7B,QAAA,MAAM,WAAW,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,GAAM,QAAQ,MAAM,CAAA;AACrD,QAAA,IAAI,KAAK,MAAA,EAAQ;AAEhB,UAAA,QAAA,CAAS,IAAA,CAAK,OAAA,EAAS,IAAA,CAAK,SAAA,EAAW,IAAI,CAAA;AAC5C,QAAA;AACA,QAAA,IAAA,CAAK,IAAA,CAAK,EAAA,EAAI,MAAA,EAAW,IAAI,CAAA;AAC9B,MAAA;AACA,MAAA,OAAO,IAAA;IACR,CAAA,MAAO;AACN,MAAA,IAAA,CAAK,IAAA,CAAK,EAAA,EAAI,MAAA,EAAW,IAAI,CAAA;AAE7B,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,IAAI,EAAE,CAAA;AACtC,MAAA,IAAI,IAAA,CAAK,KAAA,CAAM,MAAA,EAAQ,OAAO,IAAA;AAC/B,IAAA;AACD,EAAA;AACD,CAAA;ACrLA,SAAS,OAAA,GAAU;AAClB,EAAA,IAAI,OAAO,UAAA,KAAe,WAAA,IAAe,OAAO,UAAA,CAAW,SAAS,UAAA,EAAY;AAC/E,IAAA,OAAO,CAAC,QAAQ,UAAA,CAAW,IAAA,CAAK,SAAS,kBAAA,CAAmB,GAAG,CAAC,CAAC,CAAA;EAClE,CAAA,MAAA,IAAW,OAAO,WAAW,UAAA,EAAY;AACxC,IAAA,OAAO,CAAC,QAAQ,MAAA,CAAO,IAAA,CAAK,KAAK,OAAO,CAAA,CAAE,SAAS,QAAQ,CAAA;EAC5D,CAAA,MAAO;AACN,IAAA,OAAO,MAAM;AACZ,MAAA,MAAM,IAAI,MAAM,yEAAyE,CAAA;AAC1F,IAAA,CAAA;AACD,EAAA;AACD;AAEA,IAAM,uBAAqB,OAAA,EAAO;AAEnB,IAAM,YAAN,MAAgB;AAC9B,EAAA,WAAA,CAAY,UAAA,EAAY;AACvB,IAAA,IAAA,CAAK,OAAA,GAAU,CAAA;AACf,IAAA,IAAA,CAAK,OAAO,UAAA,CAAW,IAAA;AACvB,IAAA,IAAA,CAAK,UAAU,UAAA,CAAW,OAAA;AAC1B,IAAA,IAAA,CAAK,iBAAiB,UAAA,CAAW,cAAA;AACjC,IAAA,IAAA,CAAK,QAAQ,UAAA,CAAW,KAAA;AACxB,IAAA,IAAA,CAAK,QAAA,GAAW,MAAA,CAAO,UAAA,CAAW,QAAQ,CAAA;AAC1C,IAAA,IAAI,OAAO,UAAA,CAAW,mBAAA,KAAwB,WAAA,EAAa;AAC1D,MAAA,IAAA,CAAK,sBAAsB,UAAA,CAAW,mBAAA;AACvC,IAAA;AACA,IAAA,IAAI,OAAO,UAAA,CAAW,OAAA,KAAY,WAAA,EAAa;AAC9C,MAAA,IAAA,CAAK,UAAU,UAAA,CAAW,OAAA;AAC3B,IAAA;AACD,EAAA;EAEA,QAAA,GAAW;AACV,IAAA,OAAO,IAAA,CAAK,UAAU,IAAI,CAAA;AAC3B,EAAA;EAEA,KAAA,GAAQ;AACP,IAAA,OAAO,6CAAA,GAAgD,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,CAAA;AAC5E,EAAA;AACD,CAAA;ACvCe,SAAS,YAAY,IAAA,EAAM;AACzC,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAE7B,EAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,CAAC,SAAS,MAAA,CAAO,IAAA,CAAK,IAAI,CAAC,CAAA;AACvD,EAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,CAAC,SAAS,QAAA,CAAS,IAAA,CAAK,IAAI,CAAC,CAAA;AAEzD,EAAA,IAAI,MAAA,CAAO,MAAA,KAAW,CAAA,IAAK,MAAA,CAAO,WAAW,CAAA,EAAG;AAC/C,IAAA,OAAO,IAAA;AACR,EAAA;AAKA,EAAA,IAAI,MAAA,CAAO,MAAA,IAAU,MAAA,CAAO,MAAA,EAAQ;AACnC,IAAA,OAAO,GAAA;AACR,EAAA;AAGA,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,MAAA,CAAO,CAAC,UAAU,OAAA,KAAY;AAChD,IAAA,MAAM,YAAY,KAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAE,CAAC,CAAA,CAAE,MAAA;AACzC,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,SAAA,EAAW,QAAQ,CAAA;AACpC,EAAA,CAAA,EAAG,QAAQ,CAAA;AAEX,EAAA,OAAO,IAAI,KAAA,CAAM,GAAA,GAAM,CAAC,CAAA,CAAE,KAAK,GAAG,CAAA;AACnC;ACxBe,SAAS,eAAA,CAAgB,MAAM,EAAA,EAAI;AACjD,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA;AACpC,EAAA,MAAM,OAAA,GAAU,EAAA,CAAG,KAAA,CAAM,OAAO,CAAA;AAEhC,EAAA,SAAA,CAAU,GAAA,EAAG;AAEb,EAAA,OAAO,SAAA,CAAU,CAAC,CAAA,KAAM,OAAA,CAAQ,CAAC,CAAA,EAAG;AACnC,IAAA,SAAA,CAAU,KAAA,EAAK;AACf,IAAA,OAAA,CAAQ,KAAA,EAAK;AACd,EAAA;AAEA,EAAA,IAAI,UAAU,MAAA,EAAQ;AACrB,IAAA,IAAI,IAAI,SAAA,CAAU,MAAA;AAClB,IAAA,OAAO,CAAA,EAAA,EAAK,SAAA,CAAU,CAAC,CAAA,GAAI,IAAA;AAC5B,EAAA;AAEA,EAAA,OAAO,SAAA,CAAU,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AAC1C;ACjBA,IAAM,QAAA,GAAW,OAAO,SAAA,CAAU,QAAA;AAEnB,SAAS,SAAS,KAAA,EAAO;AACvC,EAAA,OAAO,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA,KAAM,iBAAA;AACjC;ACJe,SAAS,WAAW,MAAA,EAAQ;AAC1C,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA;AACvC,EAAA,MAAM,cAAc,EAAA;AAEpB,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,GAAA,GAAM,GAAG,CAAA,GAAI,aAAA,CAAc,QAAQ,CAAA,EAAA,EAAK;AACvD,IAAA,WAAA,CAAY,KAAK,GAAG,CAAA;AACpB,IAAA,GAAA,IAAO,aAAA,CAAc,CAAC,CAAA,CAAE,MAAA,GAAS,CAAA;AAClC,EAAA;AAEA,EAAA,OAAO,SAAS,OAAO,KAAA,EAAO;AAC7B,IAAA,IAAI,CAAA,GAAI,CAAA;AACR,IAAA,IAAI,IAAI,WAAA,CAAY,MAAA;AACpB,IAAA,OAAO,IAAI,CAAA,EAAG;AACb,MAAA,MAAM,CAAA,GAAK,IAAI,CAAA,IAAM,CAAA;AACrB,MAAA,IAAI,KAAA,GAAQ,WAAA,CAAY,CAAC,CAAA,EAAG;AAC3B,QAAA,CAAA,GAAI,CAAA;MACL,CAAA,MAAO;AACN,QAAA,CAAA,GAAI,CAAA,GAAI,CAAA;AACT,MAAA;AACD,IAAA;AACA,IAAA,MAAM,OAAO,CAAA,GAAI,CAAA;AACjB,IAAA,MAAM,MAAA,GAAS,KAAA,GAAQ,WAAA,CAAY,IAAI,CAAA;AACvC,IAAA,OAAO,EAAE,MAAM,MAAA,EAAM;AACtB,EAAA,CAAA;AACD;ACxBA,IAAM,SAAA,GAAY,IAAA;AAEH,IAAM,WAAN,MAAe;AAC7B,EAAA,WAAA,CAAY,KAAA,EAAO;AAClB,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,IAAA,IAAA,CAAK,iBAAA,GAAoB,CAAA;AACzB,IAAA,IAAA,CAAK,mBAAA,GAAsB,CAAA;AAC3B,IAAA,IAAA,CAAK,MAAM,EAAA;AACX,IAAA,IAAA,CAAK,cAAc,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,iBAAiB,IAAI,EAAA;AACtD,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AAChB,EAAA;EAEA,OAAA,CAAQ,WAAA,EAAa,OAAA,EAAS,GAAA,EAAK,SAAA,EAAW;AAC7C,IAAA,IAAI,QAAQ,MAAA,EAAQ;AACnB,MAAA,MAAM,qBAAA,GAAwB,QAAQ,MAAA,GAAS,CAAA;AAC/C,MAAA,IAAI,cAAA,GAAiB,OAAA,CAAQ,OAAA,CAAQ,IAAA,EAAM,CAAC,CAAA;AAC5C,MAAA,IAAI,sBAAA,GAAyB,EAAA;AAG7B,MAAA,OAAO,cAAA,IAAkB,CAAA,IAAK,qBAAA,GAAwB,cAAA,EAAgB;AACrE,QAAA,MAAMC,QAAAA,GAAU,CAAC,IAAA,CAAK,mBAAA,EAAqB,aAAa,GAAA,CAAI,IAAA,EAAM,IAAI,MAAM,CAAA;AAC5E,QAAA,IAAI,aAAa,CAAA,EAAG;AACnB,UAAAA,QAAAA,CAAQ,KAAK,SAAS,CAAA;AACvB,QAAA;AACA,QAAA,IAAA,CAAK,WAAA,CAAY,KAAKA,QAAO,CAAA;AAE7B,QAAA,IAAA,CAAK,iBAAA,IAAqB,CAAA;AAC1B,QAAA,IAAA,CAAK,IAAI,IAAA,CAAK,iBAAiB,CAAA,GAAI,IAAA,CAAK,cAAc,EAAA;AACtD,QAAA,IAAA,CAAK,mBAAA,GAAsB,CAAA;AAE3B,QAAA,sBAAA,GAAyB,cAAA;AACzB,QAAA,cAAA,GAAiB,OAAA,CAAQ,OAAA,CAAQ,IAAA,EAAM,cAAA,GAAiB,CAAC,CAAA;AAC1D,MAAA;AAEA,MAAA,MAAM,OAAA,GAAU,CAAC,IAAA,CAAK,mBAAA,EAAqB,aAAa,GAAA,CAAI,IAAA,EAAM,IAAI,MAAM,CAAA;AAC5E,MAAA,IAAI,aAAa,CAAA,EAAG;AACnB,QAAA,OAAA,CAAQ,KAAK,SAAS,CAAA;AACvB,MAAA;AACA,MAAA,IAAA,CAAK,WAAA,CAAY,KAAK,OAAO,CAAA;AAE7B,MAAA,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,KAAA,CAAM,sBAAA,GAAyB,CAAC,CAAC,CAAA;AACvD,IAAA,CAAA,MAAA,IAAW,KAAK,OAAA,EAAS;AACxB,MAAA,IAAA,CAAK,WAAA,CAAY,IAAA,CAAK,IAAA,CAAK,OAAO,CAAA;AAClC,MAAA,IAAA,CAAK,QAAQ,OAAO,CAAA;AACrB,IAAA;AAEA,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AAChB,EAAA;AAEA,EAAA,gBAAA,CAAiB,WAAA,EAAa,KAAA,EAAO,QAAA,EAAU,GAAA,EAAK,kBAAA,EAAoB;AACvE,IAAA,IAAI,oBAAoB,KAAA,CAAM,KAAA;AAC9B,IAAA,IAAI,KAAA,GAAQ,IAAA;AAEZ,IAAA,IAAI,mBAAA,GAAsB,KAAA;AAE1B,IAAA,OAAO,iBAAA,GAAoB,MAAM,GAAA,EAAK;AACrC,MAAA,IAAI,QAAA,CAAS,iBAAiB,CAAA,KAAM,IAAA,EAAM;AACzC,QAAA,GAAA,CAAI,IAAA,IAAQ,CAAA;AACZ,QAAA,GAAA,CAAI,MAAA,GAAS,CAAA;AACb,QAAA,IAAA,CAAK,iBAAA,IAAqB,CAAA;AAC1B,QAAA,IAAA,CAAK,IAAI,IAAA,CAAK,iBAAiB,CAAA,GAAI,IAAA,CAAK,cAAc,EAAA;AACtD,QAAA,IAAA,CAAK,mBAAA,GAAsB,CAAA;AAC3B,QAAA,KAAA,GAAQ,IAAA;AACR,QAAA,mBAAA,GAAsB,KAAA;MACvB,CAAA,MAAO;AACN,QAAA,IAAI,KAAK,KAAA,IAAS,KAAA,IAAS,kBAAA,CAAmB,GAAA,CAAI,iBAAiB,CAAA,EAAG;AACrE,UAAA,MAAM,OAAA,GAAU,CAAC,IAAA,CAAK,mBAAA,EAAqB,aAAa,GAAA,CAAI,IAAA,EAAM,IAAI,MAAM,CAAA;AAE5E,UAAA,IAAI,IAAA,CAAK,UAAU,UAAA,EAAY;AAE9B,YAAA,IAAI,SAAA,CAAU,IAAA,CAAK,QAAA,CAAS,iBAAiB,CAAC,CAAA,EAAG;AAEhD,cAAA,IAAI,CAAC,mBAAA,EAAqB;AACzB,gBAAA,IAAA,CAAK,WAAA,CAAY,KAAK,OAAO,CAAA;AAC7B,gBAAA,mBAAA,GAAsB,IAAA;AACvB,cAAA;YACD,CAAA,MAAO;AAEN,cAAA,IAAA,CAAK,WAAA,CAAY,KAAK,OAAO,CAAA;AAC7B,cAAA,mBAAA,GAAsB,KAAA;AACvB,YAAA;UACD,CAAA,MAAO;AACN,YAAA,IAAA,CAAK,WAAA,CAAY,KAAK,OAAO,CAAA;AAC9B,UAAA;AACD,QAAA;AAEA,QAAA,GAAA,CAAI,MAAA,IAAU,CAAA;AACd,QAAA,IAAA,CAAK,mBAAA,IAAuB,CAAA;AAC5B,QAAA,KAAA,GAAQ,KAAA;AACT,MAAA;AAEA,MAAA,iBAAA,IAAqB,CAAA;AACtB,IAAA;AAEA,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AAChB,EAAA;AAEA,EAAA,OAAA,CAAQ,GAAA,EAAK;AACZ,IAAA,IAAI,CAAC,GAAA,EAAK;AAEV,IAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,KAAA,CAAM,IAAI,CAAA;AAE5B,IAAA,IAAI,KAAA,CAAM,SAAS,CAAA,EAAG;AACrB,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,MAAA,GAAS,GAAG,CAAA,EAAA,EAAK;AAC1C,QAAA,IAAA,CAAK,iBAAA,EAAA;AACL,QAAA,IAAA,CAAK,IAAI,IAAA,CAAK,iBAAiB,CAAA,GAAI,IAAA,CAAK,cAAc,EAAA;AACvD,MAAA;AACA,MAAA,IAAA,CAAK,mBAAA,GAAsB,CAAA;AAC5B,IAAA;AAEA,IAAA,IAAA,CAAK,mBAAA,IAAuB,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,CAAE,MAAA;AACrD,EAAA;AACD,CAAA;ACtGA,IAAM,CAAA,GAAI,IAAA;AAEV,IAAM,MAAA,GAAS;EACd,UAAA,EAAY,KAAA;EACZ,WAAA,EAAa,KAAA;EACb,SAAA,EAAW;AACZ,CAAA;AAEe,IAAM,WAAA,GAAN,MAAM,YAAA,CAAY;EAChC,WAAA,CAAY,MAAA,EAAQ,OAAA,GAAU,EAAA,EAAI;AACjC,IAAA,MAAM,QAAQ,IAAI,KAAA,CAAM,CAAA,EAAG,MAAA,CAAO,QAAQ,MAAM,CAAA;AAEhD,IAAA,MAAA,CAAO,iBAAiB,IAAA,EAAM;AAC7B,MAAA,QAAA,EAAU,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,MAAA,EAAM;AACzC,MAAA,KAAA,EAAO,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,EAAA,EAAE;AAClC,MAAA,KAAA,EAAO,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,EAAA,EAAE;AAClC,MAAA,UAAA,EAAY,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,KAAA,EAAK;AAC1C,MAAA,SAAA,EAAW,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,KAAA,EAAK;AACzC,MAAA,iBAAA,EAAmB,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,KAAA,EAAK;AACjD,MAAA,OAAA,EAAS,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,EAAA,EAAE;AACpC,MAAA,KAAA,EAAO,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,EAAA,EAAE;AAClC,MAAA,QAAA,EAAU,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,QAAQ,QAAA,EAAQ;AACnD,MAAA,qBAAA,EAAuB,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,QAAQ,qBAAA,EAAqB;AAC7E,MAAA,kBAAA,EAAoB,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,IAAI,QAAM,EAAE;AACzD,MAAA,WAAA,EAAa,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,EAAA,EAAE;AACxC,MAAA,SAAA,EAAW,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,MAAA,EAAS;AAC7C,MAAA,UAAA,EAAY,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,QAAQ,UAAA,EAAU;AACvD,MAAA,MAAA,EAAQ,EAAE,QAAA,EAAU,IAAA,EAAM,KAAA,EAAO,OAAA,CAAQ,UAAU,CAAA;KACnD,CAAA;AAMD,IAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAA,GAAI,KAAA;AAClB,IAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,MAAM,CAAA,GAAI,KAAA;AAC7B,EAAA;AAEA,EAAA,oBAAA,CAAqB,IAAA,EAAM;AAC1B,IAAA,IAAA,CAAK,kBAAA,CAAmB,IAAI,IAAI,CAAA;AACjC,EAAA;AAEA,EAAA,MAAA,CAAO,OAAA,EAAS;AACf,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,MAAM,IAAI,UAAU,gCAAgC,CAAA;AAErF,IAAA,IAAA,CAAK,KAAA,IAAS,OAAA;AACd,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,UAAA,CAAW,OAAO,OAAA,EAAS;AAC1B,IAAA,KAAA,GAAQ,QAAQ,IAAA,CAAK,MAAA;AAErB,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,MAAM,IAAI,UAAU,mCAAmC,CAAA;AAIxF,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AAEjB,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA;AAE9B,IAAA,IAAI,KAAA,EAAO;AACV,MAAA,KAAA,CAAM,WAAW,OAAO,CAAA;IACzB,CAAA,MAAO;AACN,MAAA,IAAA,CAAK,KAAA,IAAS,OAAA;AACf,IAAA;AAGA,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,WAAA,CAAY,OAAO,OAAA,EAAS;AAC3B,IAAA,KAAA,GAAQ,QAAQ,IAAA,CAAK,MAAA;AAErB,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,MAAM,IAAI,UAAU,mCAAmC,CAAA;AAIxF,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AAEjB,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AAEhC,IAAA,IAAI,KAAA,EAAO;AACV,MAAA,KAAA,CAAM,YAAY,OAAO,CAAA;IAC1B,CAAA,MAAO;AACN,MAAA,IAAA,CAAK,KAAA,IAAS,OAAA;AACf,IAAA;AAGA,IAAA,OAAO,IAAA;AACR,EAAA;EAEA,KAAA,GAAQ;AACP,IAAA,MAAM,MAAA,GAAS,IAAI,YAAA,CAAY,IAAA,CAAK,QAAA,EAAU,EAAE,QAAA,EAAU,IAAA,CAAK,QAAA,EAAU,MAAA,EAAQ,IAAA,CAAK,MAAA,EAAQ,CAAA;AAE9F,IAAA,IAAI,gBAAgB,IAAA,CAAK,UAAA;AACzB,IAAA,IAAI,cAAe,MAAA,CAAO,UAAA,GAAa,MAAA,CAAO,iBAAA,GAAoB,cAAc,KAAA,EAAK;AAErF,IAAA,OAAO,aAAA,EAAe;AACrB,MAAA,MAAA,CAAO,OAAA,CAAQ,WAAA,CAAY,KAAK,CAAA,GAAI,WAAA;AACpC,MAAA,MAAA,CAAO,KAAA,CAAM,WAAA,CAAY,GAAG,CAAA,GAAI,WAAA;AAEhC,MAAA,MAAM,oBAAoB,aAAA,CAAc,IAAA;AACxC,MAAA,MAAM,eAAA,GAAkB,iBAAA,IAAqB,iBAAA,CAAkB,KAAA,EAAK;AAEpE,MAAA,IAAI,eAAA,EAAiB;AACpB,QAAA,WAAA,CAAY,IAAA,GAAO,eAAA;AACnB,QAAA,eAAA,CAAgB,QAAA,GAAW,WAAA;AAE3B,QAAA,WAAA,GAAc,eAAA;AACf,MAAA;AAEA,MAAA,aAAA,GAAgB,iBAAA;AACjB,IAAA;AAEA,IAAA,MAAA,CAAO,SAAA,GAAY,WAAA;AAEnB,IAAA,IAAI,KAAK,qBAAA,EAAuB;AAC/B,MAAA,MAAA,CAAO,qBAAA,GAAwB,IAAA,CAAK,qBAAA,CAAsB,KAAA,EAAK;AAChE,IAAA;AAEA,IAAA,MAAA,CAAO,kBAAA,GAAqB,IAAI,MAAA,CAAO,IAAA,CAAK,kBAAkB,CAAA;AAE9D,IAAA,MAAA,CAAO,QAAQ,IAAA,CAAK,KAAA;AACpB,IAAA,MAAA,CAAO,QAAQ,IAAA,CAAK,KAAA;AAEpB,IAAA,OAAO,MAAA;AACR,EAAA;AAEA,EAAA,kBAAA,CAAmB,OAAA,EAAS;AAC3B,IAAA,OAAA,GAAU,WAAW,EAAA;AAErB,IAAA,MAAM,WAAA,GAAc,CAAA;AACpB,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,WAAW,CAAA;AAC1C,IAAA,MAAM,QAAA,GAAW,IAAI,QAAA,CAAS,OAAA,CAAQ,KAAK,CAAA;AAE3C,IAAA,MAAM,MAAA,GAAS,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA;AAEvC,IAAA,IAAI,KAAK,KAAA,EAAO;AACf,MAAA,QAAA,CAAS,OAAA,CAAQ,KAAK,KAAK,CAAA;AAC5B,IAAA;AAEA,IAAA,IAAA,CAAK,UAAA,CAAW,QAAA,CAAS,CAAC,KAAA,KAAU;AACnC,MAAA,MAAM,GAAA,GAAM,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA;AAE9B,MAAA,IAAI,MAAM,KAAA,CAAM,MAAA,EAAQ,QAAA,CAAS,OAAA,CAAQ,MAAM,KAAK,CAAA;AAEpD,MAAA,IAAI,MAAM,MAAA,EAAQ;AACjB,QAAA,QAAA,CAAS,OAAA;AACR,UAAA,WAAA;UACA,KAAA,CAAM,OAAA;AACN,UAAA,GAAA;AACA,UAAA,KAAA,CAAM,SAAA,GAAY,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,QAAQ,CAAA,GAAI;AACvD,SAAA;MACG,CAAA,MAAO;AACN,QAAA,QAAA,CAAS,iBAAiB,WAAA,EAAa,KAAA,EAAO,KAAK,QAAA,EAAU,GAAA,EAAK,KAAK,kBAAkB,CAAA;AAC1F,MAAA;AAEA,MAAA,IAAI,MAAM,KAAA,CAAM,MAAA,EAAQ,QAAA,CAAS,OAAA,CAAQ,MAAM,KAAK,CAAA;IACrD,CAAC,CAAA;AAED,IAAA,IAAI,KAAK,KAAA,EAAO;AACf,MAAA,QAAA,CAAS,OAAA,CAAQ,KAAK,KAAK,CAAA;AAC5B,IAAA;AAEA,IAAA,OAAO;MACN,IAAA,EAAM,OAAA,CAAQ,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,OAAO,CAAA,CAAE,KAAG,GAAK,MAAA;MACzD,OAAA,EAAS;QACR,OAAA,CAAQ,MAAA,GAAS,gBAAgB,OAAA,CAAQ,IAAA,IAAQ,IAAI,OAAA,CAAQ,MAAM,CAAA,GAAI,OAAA,CAAQ,IAAA,IAAQ;AAC3F,OAAA;AACG,MAAA,cAAA,EAAgB,OAAA,CAAQ,cAAA,GAAiB,CAAC,IAAA,CAAK,QAAQ,CAAA,GAAI,MAAA;AAC3D,MAAA,KAAA;AACA,MAAA,QAAA,EAAU,QAAA,CAAS,GAAA;AACnB,MAAA,mBAAA,EAAqB,IAAA,CAAK,UAAA,GAAa,CAAC,WAAW,CAAA,GAAI;AAC1D,KAAA;AACC,EAAA;AAEA,EAAA,WAAA,CAAY,OAAA,EAAS;AACpB,IAAA,OAAO,IAAI,SAAA,CAAU,IAAA,CAAK,kBAAA,CAAmB,OAAO,CAAC,CAAA;AACtD,EAAA;EAEA,gBAAA,GAAmB;AAClB,IAAA,IAAI,IAAA,CAAK,cAAc,MAAA,EAAW;AACjC,MAAA,IAAA,CAAK,SAAA,GAAY,WAAA,CAAY,IAAA,CAAK,QAAQ,CAAA;AAC3C,IAAA;AACD,EAAA;EAEA,mBAAA,GAAsB;AACrB,IAAA,IAAA,CAAK,gBAAA,EAAgB;AACrB,IAAA,OAAO,IAAA,CAAK,SAAA;AACb,EAAA;EAEA,eAAA,GAAkB;AACjB,IAAA,IAAA,CAAK,gBAAA,EAAgB;AACrB,IAAA,OAAO,IAAA,CAAK,SAAA,KAAc,IAAA,GAAO,GAAA,GAAO,IAAA,CAAK,SAAA;AAC9C,EAAA;AAEA,EAAA,MAAA,CAAO,WAAW,OAAA,EAAS;AAC1B,IAAA,MAAM,OAAA,GAAU,YAAA;AAEhB,IAAA,IAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AACxB,MAAA,OAAA,GAAU,SAAA;AACV,MAAA,SAAA,GAAY,MAAA;AACb,IAAA;AAEA,IAAA,IAAI,cAAc,MAAA,EAAW;AAC5B,MAAA,IAAA,CAAK,gBAAA,EAAgB;AACrB,MAAA,SAAA,GAAY,KAAK,SAAA,IAAa,GAAA;AAC/B,IAAA;AAEA,IAAA,IAAI,SAAA,KAAc,IAAI,OAAO,IAAA;AAE7B,IAAA,OAAA,GAAU,WAAW,EAAA;AAGrB,IAAA,MAAM,aAAa,EAAA;AAEnB,IAAA,IAAI,QAAQ,OAAA,EAAS;AACpB,MAAA,MAAM,UAAA,GACL,OAAO,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAA,KAAM,QAAA,GAAW,CAAC,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA,CAAQ,OAAA;AACtE,MAAA,UAAA,CAAW,OAAA,CAAQ,CAAC,SAAA,KAAc;AACjC,QAAA,KAAA,IAAS,CAAA,GAAI,UAAU,CAAC,CAAA,EAAG,IAAI,SAAA,CAAU,CAAC,CAAA,EAAG,CAAA,IAAK,CAAA,EAAG;AACpD,UAAA,UAAA,CAAW,CAAC,CAAA,GAAI,IAAA;AACjB,QAAA;MACD,CAAC,CAAA;AACF,IAAA;AAEA,IAAA,IAAI,yBAAA,GAA4B,QAAQ,WAAA,KAAgB,KAAA;AACxD,IAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAAU;AAC3B,MAAA,IAAI,yBAAA,EAA2B,OAAO,CAAA,EAAG,SAAS,GAAG,KAAK,CAAA,CAAA;AAC1D,MAAA,yBAAA,GAA4B,IAAA;AAC5B,MAAA,OAAO,KAAA;AACR,IAAA,CAAA;AAEA,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,QAAQ,CAAA;AAEjD,IAAA,IAAI,SAAA,GAAY,CAAA;AAChB,IAAA,IAAI,QAAQ,IAAA,CAAK,UAAA;AAEjB,IAAA,OAAO,KAAA,EAAO;AACb,MAAA,MAAM,MAAM,KAAA,CAAM,GAAA;AAElB,MAAA,IAAI,MAAM,MAAA,EAAQ;AACjB,QAAA,IAAI,CAAC,UAAA,CAAW,SAAS,CAAA,EAAG;AAC3B,UAAA,KAAA,CAAM,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,SAAS,QAAQ,CAAA;AAEvD,UAAA,IAAI,KAAA,CAAM,QAAQ,MAAA,EAAQ;AACzB,YAAA,yBAAA,GAA4B,MAAM,OAAA,CAAQ,KAAA,CAAM,OAAA,CAAQ,MAAA,GAAS,CAAC,CAAA,KAAM,IAAA;AACzE,UAAA;AACD,QAAA;MACD,CAAA,MAAO;AACN,QAAA,SAAA,GAAY,KAAA,CAAM,KAAA;AAElB,QAAA,OAAO,YAAY,GAAA,EAAK;AACvB,UAAA,IAAI,CAAC,UAAA,CAAW,SAAS,CAAA,EAAG;AAC3B,YAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,CAAS,SAAS,CAAA;AAEpC,YAAA,IAAI,SAAS,IAAA,EAAM;AAClB,cAAA,yBAAA,GAA4B,IAAA;YAC7B,CAAA,MAAA,IAAW,IAAA,KAAS,QAAQ,yBAAA,EAA2B;AACtD,cAAA,yBAAA,GAA4B,KAAA;AAE5B,cAAA,IAAI,SAAA,KAAc,MAAM,KAAA,EAAO;AAC9B,gBAAA,KAAA,CAAM,aAAa,SAAS,CAAA;cAC7B,CAAA,MAAO;AACN,gBAAA,IAAA,CAAK,WAAA,CAAY,OAAO,SAAS,CAAA;AACjC,gBAAA,KAAA,GAAQ,KAAA,CAAM,IAAA;AACd,gBAAA,KAAA,CAAM,aAAa,SAAS,CAAA;AAC7B,cAAA;AACD,YAAA;AACD,UAAA;AAEA,UAAA,SAAA,IAAa,CAAA;AACd,QAAA;AACD,MAAA;AAEA,MAAA,SAAA,GAAY,KAAA,CAAM,GAAA;AAClB,MAAA,KAAA,GAAQ,KAAA,CAAM,IAAA;AACf,IAAA;AAEA,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,QAAQ,CAAA;AAEjD,IAAA,OAAO,IAAA;AACR,EAAA;EAEA,MAAA,GAAS;AACR,IAAA,MAAM,IAAI,KAAA;AACT,MAAA;AACH,KAAA;AACC,EAAA;AAEA,EAAA,UAAA,CAAW,OAAO,OAAA,EAAS;AAC1B,IAAA,IAAI,CAAC,OAAO,UAAA,EAAY;AACvB,MAAA,OAAA,CAAQ,IAAA;AACP,QAAA;AACJ,OAAA;AACG,MAAA,MAAA,CAAO,UAAA,GAAa,IAAA;AACrB,IAAA;AAEA,IAAA,OAAO,IAAA,CAAK,UAAA,CAAW,KAAA,EAAO,OAAO,CAAA;AACtC,EAAA;AAEA,EAAA,WAAA,CAAY,OAAO,OAAA,EAAS;AAC3B,IAAA,IAAI,CAAC,OAAO,WAAA,EAAa;AACxB,MAAA,OAAA,CAAQ,IAAA;AACP,QAAA;AACJ,OAAA;AACG,MAAA,MAAA,CAAO,WAAA,GAAc,IAAA;AACtB,IAAA;AAEA,IAAA,OAAO,IAAA,CAAK,YAAA,CAAa,KAAA,EAAO,OAAO,CAAA;AACxC,EAAA;EAEA,IAAA,CAAK,KAAA,EAAO,KAAK,KAAA,EAAO;AACvB,IAAA,KAAA,GAAQ,QAAQ,IAAA,CAAK,MAAA;AACrB,IAAA,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA;AACjB,IAAA,KAAA,GAAQ,QAAQ,IAAA,CAAK,MAAA;AAErB,IAAA,IAAI,SAAS,KAAA,IAAS,KAAA,IAAS,KAAK,MAAM,IAAI,MAAM,uCAAuC,CAAA;AAI3F,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AACjB,IAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AACf,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AAEjB,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AAChC,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAE3B,IAAA,MAAM,UAAU,KAAA,CAAM,QAAA;AACtB,IAAA,MAAM,WAAW,IAAA,CAAK,IAAA;AAEtB,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AACnC,IAAA,IAAI,CAAC,QAAA,IAAY,IAAA,KAAS,IAAA,CAAK,WAAW,OAAO,IAAA;AACjD,IAAA,MAAM,OAAA,GAAU,QAAA,GAAW,QAAA,CAAS,QAAA,GAAW,IAAA,CAAK,SAAA;AAEpD,IAAA,IAAI,OAAA,UAAiB,IAAA,GAAO,QAAA;AAC5B,IAAA,IAAI,QAAA,WAAmB,QAAA,GAAW,OAAA;AAElC,IAAA,IAAI,OAAA,UAAiB,IAAA,GAAO,KAAA;AAC5B,IAAA,IAAI,QAAA,WAAmB,QAAA,GAAW,IAAA;AAElC,IAAA,IAAI,CAAC,KAAA,CAAM,QAAA,EAAU,IAAA,CAAK,aAAa,IAAA,CAAK,IAAA;AAC5C,IAAA,IAAI,CAAC,KAAK,IAAA,EAAM;AACf,MAAA,IAAA,CAAK,YAAY,KAAA,CAAM,QAAA;AACvB,MAAA,IAAA,CAAK,UAAU,IAAA,GAAO,IAAA;AACvB,IAAA;AAEA,IAAA,KAAA,CAAM,QAAA,GAAW,OAAA;AACjB,IAAA,IAAA,CAAK,OAAO,QAAA,IAAY,IAAA;AAExB,IAAA,IAAI,CAAC,OAAA,EAAS,IAAA,CAAK,UAAA,GAAa,KAAA;AAChC,IAAA,IAAI,CAAC,QAAA,EAAU,IAAA,CAAK,SAAA,GAAY,IAAA;AAGhC,IAAA,OAAO,IAAA;AACR,EAAA;EAEA,SAAA,CAAU,KAAA,EAAO,GAAA,EAAK,OAAA,EAAS,OAAA,EAAS;AACvC,IAAA,OAAA,GAAU,WAAW,EAAA;AACrB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,KAAA,EAAO,GAAA,EAAK,OAAA,EAAS,EAAE,GAAG,OAAA,EAAS,SAAA,EAAW,CAAC,OAAA,CAAQ,WAAA,EAAa,CAAA;AACxF,EAAA;EAEA,MAAA,CAAO,KAAA,EAAO,GAAA,EAAK,OAAA,EAAS,OAAA,EAAS;AACpC,IAAA,KAAA,GAAQ,QAAQ,IAAA,CAAK,MAAA;AACrB,IAAA,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA;AAEjB,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,MAAM,IAAI,UAAU,sCAAsC,CAAA;AAE3F,IAAA,IAAI,IAAA,CAAK,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAC/B,MAAA,OAAO,KAAA,GAAQ,CAAA,EAAG,KAAA,IAAS,IAAA,CAAK,QAAA,CAAS,MAAA;AACzC,MAAA,OAAO,GAAA,GAAM,CAAA,EAAG,GAAA,IAAO,IAAA,CAAK,QAAA,CAAS,MAAA;AACtC,IAAA;AAEA,IAAA,IAAI,MAAM,IAAA,CAAK,QAAA,CAAS,QAAQ,MAAM,IAAI,MAAM,sBAAsB,CAAA;AACtE,IAAA,IAAI,KAAA,KAAU,GAAA;AACb,MAAA,MAAM,IAAI,KAAA;AACT,QAAA;AACJ,OAAA;AAIE,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AACjB,IAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AAEf,IAAA,IAAI,YAAY,IAAA,EAAM;AACrB,MAAA,IAAI,CAAC,OAAO,SAAA,EAAW;AACtB,QAAA,OAAA,CAAQ,IAAA;AACP,UAAA;AACL,SAAA;AACI,QAAA,MAAA,CAAO,SAAA,GAAY,IAAA;AACpB,MAAA;AAEA,MAAA,OAAA,GAAU,EAAE,WAAW,IAAA,EAAI;AAC5B,IAAA;AACA,IAAA,MAAM,SAAA,GAAY,OAAA,KAAY,MAAA,GAAY,OAAA,CAAQ,SAAA,GAAY,KAAA;AAC9D,IAAA,MAAM,SAAA,GAAY,OAAA,KAAY,MAAA,GAAY,OAAA,CAAQ,SAAA,GAAY,KAAA;AAE9D,IAAA,IAAI,SAAA,EAAW;AACd,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,OAAO,GAAG,CAAA;AAC/C,MAAA,MAAA,CAAO,cAAA,CAAe,IAAA,CAAK,WAAA,EAAa,QAAA,EAAU;QACjD,QAAA,EAAU,IAAA;QACV,KAAA,EAAO,IAAA;QACP,UAAA,EAAY;OACZ,CAAA;AACF,IAAA;AAEA,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AAChC,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAE3B,IAAA,IAAI,KAAA,EAAO;AACV,MAAA,IAAI,KAAA,GAAQ,KAAA;AACZ,MAAA,OAAO,UAAU,IAAA,EAAM;AACtB,QAAA,IAAI,MAAM,IAAA,KAAS,IAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA,EAAG;AAC3C,UAAA,MAAM,IAAI,MAAM,uCAAuC,CAAA;AACxD,QAAA;AACA,QAAA,KAAA,GAAQ,KAAA,CAAM,IAAA;AACd,QAAA,KAAA,CAAM,IAAA,CAAK,IAAI,KAAK,CAAA;AACrB,MAAA;AAEA,MAAA,KAAA,CAAM,IAAA,CAAK,OAAA,EAAS,SAAA,EAAW,CAAC,SAAS,CAAA;IAC1C,CAAA,MAAO;AAEN,MAAA,MAAM,QAAA,GAAW,IAAI,KAAA,CAAM,KAAA,EAAO,KAAK,EAAE,CAAA,CAAE,IAAA,CAAK,OAAA,EAAS,SAAS,CAAA;AAGlE,MAAA,IAAA,CAAK,IAAA,GAAO,QAAA;AACZ,MAAA,QAAA,CAAS,QAAA,GAAW,IAAA;AACrB,IAAA;AAGA,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,OAAA,CAAQ,OAAA,EAAS;AAChB,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,MAAM,IAAI,UAAU,gCAAgC,CAAA;AAErF,IAAA,IAAA,CAAK,KAAA,GAAQ,UAAU,IAAA,CAAK,KAAA;AAC5B,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,WAAA,CAAY,OAAO,OAAA,EAAS;AAC3B,IAAA,KAAA,GAAQ,QAAQ,IAAA,CAAK,MAAA;AAErB,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,MAAM,IAAI,UAAU,mCAAmC,CAAA;AAIxF,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AAEjB,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA;AAE9B,IAAA,IAAI,KAAA,EAAO;AACV,MAAA,KAAA,CAAM,YAAY,OAAO,CAAA;IAC1B,CAAA,MAAO;AACN,MAAA,IAAA,CAAK,KAAA,GAAQ,UAAU,IAAA,CAAK,KAAA;AAC7B,IAAA;AAGA,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,YAAA,CAAa,OAAO,OAAA,EAAS;AAC5B,IAAA,KAAA,GAAQ,QAAQ,IAAA,CAAK,MAAA;AAErB,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,EAAU,MAAM,IAAI,UAAU,mCAAmC,CAAA;AAIxF,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AAEjB,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AAEhC,IAAA,IAAI,KAAA,EAAO;AACV,MAAA,KAAA,CAAM,aAAa,OAAO,CAAA;IAC3B,CAAA,MAAO;AACN,MAAA,IAAA,CAAK,KAAA,GAAQ,UAAU,IAAA,CAAK,KAAA;AAC7B,IAAA;AAGA,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,MAAA,CAAO,OAAO,GAAA,EAAK;AAClB,IAAA,KAAA,GAAQ,QAAQ,IAAA,CAAK,MAAA;AACrB,IAAA,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA;AAEjB,IAAA,IAAI,IAAA,CAAK,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAC/B,MAAA,OAAO,KAAA,GAAQ,CAAA,EAAG,KAAA,IAAS,IAAA,CAAK,QAAA,CAAS,MAAA;AACzC,MAAA,OAAO,GAAA,GAAM,CAAA,EAAG,GAAA,IAAO,IAAA,CAAK,QAAA,CAAS,MAAA;AACtC,IAAA;AAEA,IAAA,IAAI,KAAA,KAAU,KAAK,OAAO,IAAA;AAE1B,IAAA,IAAI,KAAA,GAAQ,KAAK,GAAA,GAAM,IAAA,CAAK,SAAS,MAAA,EAAQ,MAAM,IAAI,KAAA,CAAM,4BAA4B,CAAA;AACzF,IAAA,IAAI,KAAA,GAAQ,GAAA,EAAK,MAAM,IAAI,MAAM,gCAAgC,CAAA;AAIjE,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AACjB,IAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AAEf,IAAA,IAAI,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AAE9B,IAAA,OAAO,KAAA,EAAO;AACb,MAAA,KAAA,CAAM,KAAA,GAAQ,EAAA;AACd,MAAA,KAAA,CAAM,KAAA,GAAQ,EAAA;AACd,MAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AAEb,MAAA,KAAA,GAAQ,MAAM,KAAA,CAAM,GAAA,GAAM,KAAK,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA,GAAI,IAAA;AACrD,IAAA;AAGA,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,KAAA,CAAM,OAAO,GAAA,EAAK;AACjB,IAAA,KAAA,GAAQ,QAAQ,IAAA,CAAK,MAAA;AACrB,IAAA,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA;AAEjB,IAAA,IAAI,IAAA,CAAK,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAC/B,MAAA,OAAO,KAAA,GAAQ,CAAA,EAAG,KAAA,IAAS,IAAA,CAAK,QAAA,CAAS,MAAA;AACzC,MAAA,OAAO,GAAA,GAAM,CAAA,EAAG,GAAA,IAAO,IAAA,CAAK,QAAA,CAAS,MAAA;AACtC,IAAA;AAEA,IAAA,IAAI,KAAA,KAAU,KAAK,OAAO,IAAA;AAE1B,IAAA,IAAI,KAAA,GAAQ,KAAK,GAAA,GAAM,IAAA,CAAK,SAAS,MAAA,EAAQ,MAAM,IAAI,KAAA,CAAM,4BAA4B,CAAA;AACzF,IAAA,IAAI,KAAA,GAAQ,GAAA,EAAK,MAAM,IAAI,MAAM,gCAAgC,CAAA;AAIjE,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AACjB,IAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AAEf,IAAA,IAAI,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AAE9B,IAAA,OAAO,KAAA,EAAO;AACb,MAAA,KAAA,CAAM,KAAA,EAAK;AAEX,MAAA,KAAA,GAAQ,MAAM,KAAA,CAAM,GAAA,GAAM,KAAK,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA,GAAI,IAAA;AACrD,IAAA;AAGA,IAAA,OAAO,IAAA;AACR,EAAA;EAEA,QAAA,GAAW;AACV,IAAA,IAAI,IAAA,CAAK,MAAM,MAAA,EAAQ,OAAO,KAAK,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA;AAC9D,IAAA,IAAI,QAAQ,IAAA,CAAK,SAAA;AACjB,IAAA,GAAG;AACF,MAAA,IAAI,KAAA,CAAM,MAAM,MAAA,EAAQ,OAAO,MAAM,KAAA,CAAM,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA;AACjE,MAAA,IAAI,KAAA,CAAM,QAAQ,MAAA,EAAQ,OAAO,MAAM,OAAA,CAAQ,KAAA,CAAM,OAAA,CAAQ,MAAA,GAAS,CAAC,CAAA;AACvE,MAAA,IAAI,KAAA,CAAM,MAAM,MAAA,EAAQ,OAAO,MAAM,KAAA,CAAM,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA;AAClE,IAAA,CAAA,QAAU,QAAQ,KAAA,CAAM,QAAA;AACxB,IAAA,IAAI,IAAA,CAAK,MAAM,MAAA,EAAQ,OAAO,KAAK,KAAA,CAAM,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA;AAC9D,IAAA,OAAO,EAAA;AACR,EAAA;EAEA,QAAA,GAAW;AACV,IAAA,IAAI,SAAA,GAAY,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,CAAC,CAAA;AACxC,IAAA,IAAI,cAAc,EAAA,EAAI,OAAO,KAAK,KAAA,CAAM,MAAA,CAAO,YAAY,CAAC,CAAA;AAC5D,IAAA,IAAI,UAAU,IAAA,CAAK,KAAA;AACnB,IAAA,IAAI,QAAQ,IAAA,CAAK,SAAA;AACjB,IAAA,GAAG;AACF,MAAA,IAAI,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AAC3B,QAAA,SAAA,GAAY,KAAA,CAAM,KAAA,CAAM,WAAA,CAAY,CAAC,CAAA;AACrC,QAAA,IAAI,SAAA,KAAc,IAAI,OAAO,KAAA,CAAM,MAAM,MAAA,CAAO,SAAA,GAAY,CAAC,CAAA,GAAI,OAAA;AACjE,QAAA,OAAA,GAAU,MAAM,KAAA,GAAQ,OAAA;AACzB,MAAA;AAEA,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AAC7B,QAAA,SAAA,GAAY,KAAA,CAAM,OAAA,CAAQ,WAAA,CAAY,CAAC,CAAA;AACvC,QAAA,IAAI,SAAA,KAAc,IAAI,OAAO,KAAA,CAAM,QAAQ,MAAA,CAAO,SAAA,GAAY,CAAC,CAAA,GAAI,OAAA;AACnE,QAAA,OAAA,GAAU,MAAM,OAAA,GAAU,OAAA;AAC3B,MAAA;AAEA,MAAA,IAAI,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AAC3B,QAAA,SAAA,GAAY,KAAA,CAAM,KAAA,CAAM,WAAA,CAAY,CAAC,CAAA;AACrC,QAAA,IAAI,SAAA,KAAc,IAAI,OAAO,KAAA,CAAM,MAAM,MAAA,CAAO,SAAA,GAAY,CAAC,CAAA,GAAI,OAAA;AACjE,QAAA,OAAA,GAAU,MAAM,KAAA,GAAQ,OAAA;AACzB,MAAA;AACD,IAAA,CAAA,QAAU,QAAQ,KAAA,CAAM,QAAA;AACxB,IAAA,SAAA,GAAY,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,CAAC,CAAA;AACpC,IAAA,IAAI,SAAA,KAAc,IAAI,OAAO,IAAA,CAAK,MAAM,MAAA,CAAO,SAAA,GAAY,CAAC,CAAA,GAAI,OAAA;AAChE,IAAA,OAAO,KAAK,KAAA,GAAQ,OAAA;AACrB,EAAA;AAEA,EAAA,KAAA,CAAM,QAAQ,CAAA,EAAG,GAAA,GAAM,KAAK,QAAA,CAAS,MAAA,GAAS,KAAK,MAAA,EAAQ;AAC1D,IAAA,KAAA,GAAQ,QAAQ,IAAA,CAAK,MAAA;AACrB,IAAA,GAAA,GAAM,MAAM,IAAA,CAAK,MAAA;AAEjB,IAAA,IAAI,IAAA,CAAK,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAC/B,MAAA,OAAO,KAAA,GAAQ,CAAA,EAAG,KAAA,IAAS,IAAA,CAAK,QAAA,CAAS,MAAA;AACzC,MAAA,OAAO,GAAA,GAAM,CAAA,EAAG,GAAA,IAAO,IAAA,CAAK,QAAA,CAAS,MAAA;AACtC,IAAA;AAEA,IAAA,IAAI,MAAA,GAAS,EAAA;AAGb,IAAA,IAAI,QAAQ,IAAA,CAAK,UAAA;AACjB,IAAA,OAAO,UAAU,KAAA,CAAM,KAAA,GAAQ,KAAA,IAAS,KAAA,CAAM,OAAO,KAAA,CAAA,EAAQ;AAE5D,MAAA,IAAI,KAAA,CAAM,KAAA,GAAQ,GAAA,IAAO,KAAA,CAAM,OAAO,GAAA,EAAK;AAC1C,QAAA,OAAO,MAAA;AACR,MAAA;AAEA,MAAA,KAAA,GAAQ,KAAA,CAAM,IAAA;AACf,IAAA;AAEA,IAAA,IAAI,KAAA,IAAS,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,KAAA,KAAU,KAAA;AAC5C,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,8BAAA,EAAiC,KAAK,CAAA,uBAAA,CAAyB,CAAA;AAEhF,IAAA,MAAM,UAAA,GAAa,KAAA;AACnB,IAAA,OAAO,KAAA,EAAO;AACb,MAAA,IAAI,MAAM,KAAA,KAAU,UAAA,KAAe,KAAA,IAAS,KAAA,CAAM,UAAU,KAAA,CAAA,EAAQ;AACnE,QAAA,MAAA,IAAU,KAAA,CAAM,KAAA;AACjB,MAAA;AAEA,MAAA,MAAM,WAAA,GAAc,KAAA,CAAM,KAAA,GAAQ,GAAA,IAAO,MAAM,GAAA,IAAO,GAAA;AACtD,MAAA,IAAI,WAAA,IAAe,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,GAAA,KAAQ,GAAA;AAChD,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,8BAAA,EAAiC,GAAG,CAAA,qBAAA,CAAuB,CAAA;AAE5E,MAAA,MAAM,UAAA,GAAa,UAAA,KAAe,KAAA,GAAQ,KAAA,GAAQ,MAAM,KAAA,GAAQ,CAAA;AAChE,MAAA,MAAM,QAAA,GAAW,cAAc,KAAA,CAAM,OAAA,CAAQ,SAAS,GAAA,GAAM,KAAA,CAAM,GAAA,GAAM,KAAA,CAAM,OAAA,CAAQ,MAAA;AAEtF,MAAA,MAAA,IAAU,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,UAAA,EAAY,QAAQ,CAAA;AAElD,MAAA,IAAI,MAAM,KAAA,KAAU,CAAC,WAAA,IAAe,KAAA,CAAM,QAAQ,GAAA,CAAA,EAAM;AACvD,QAAA,MAAA,IAAU,KAAA,CAAM,KAAA;AACjB,MAAA;AAEA,MAAA,IAAI,WAAA,EAAa;AAChB,QAAA;AACD,MAAA;AAEA,MAAA,KAAA,GAAQ,KAAA,CAAM,IAAA;AACf,IAAA;AAEA,IAAA,OAAO,MAAA;AACR,EAAA;;AAGA,EAAA,IAAA,CAAK,OAAO,GAAA,EAAK;AAChB,IAAA,MAAM,KAAA,GAAQ,KAAK,KAAA,EAAK;AACxB,IAAA,KAAA,CAAM,MAAA,CAAO,GAAG,KAAK,CAAA;AACrB,IAAA,KAAA,CAAM,MAAA,CAAO,GAAA,EAAK,KAAA,CAAM,QAAA,CAAS,MAAM,CAAA;AAEvC,IAAA,OAAO,KAAA;AACR,EAAA;AAEA,EAAA,MAAA,CAAO,KAAA,EAAO;AACb,IAAA,IAAI,KAAK,OAAA,CAAQ,KAAK,KAAK,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA,EAAG;AAI9C,IAAA,IAAI,QAAQ,IAAA,CAAK,iBAAA;AACjB,IAAA,IAAI,aAAA,GAAgB,KAAA;AACpB,IAAA,MAAM,aAAA,GAAgB,QAAQ,KAAA,CAAM,GAAA;AAEpC,IAAA,OAAO,KAAA,EAAO;AACb,MAAA,IAAI,KAAA,CAAM,SAAS,KAAK,CAAA,SAAU,IAAA,CAAK,WAAA,CAAY,OAAO,KAAK,CAAA;AAE/D,MAAA,KAAA,GAAQ,aAAA,GAAgB,KAAK,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,KAAK,CAAA;AAGxE,MAAA,IAAI,UAAU,aAAA,EAAe;AAE7B,MAAA,aAAA,GAAgB,KAAA;AACjB,IAAA;AACD,EAAA;AAEA,EAAA,WAAA,CAAY,OAAO,KAAA,EAAO;AACzB,IAAA,IAAI,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,OAAA,CAAQ,MAAA,EAAQ;AAEzC,MAAA,MAAM,GAAA,GAAM,UAAA,CAAW,IAAA,CAAK,QAAQ,EAAE,KAAK,CAAA;AAC3C,MAAA,MAAM,IAAI,KAAA;AACT,QAAA,CAAA,mDAAA,EAAsD,IAAI,IAAI,CAAA,CAAA,EAAI,IAAI,MAAM,CAAA,SAAA,EAAO,MAAM,QAAQ,CAAA,EAAA;AACrG,OAAA;AACE,IAAA;AAEA,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,KAAK,CAAA;AAElC,IAAA,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA,GAAI,KAAA;AACpB,IAAA,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA,GAAI,QAAA;AACtB,IAAA,IAAA,CAAK,KAAA,CAAM,QAAA,CAAS,GAAG,CAAA,GAAI,QAAA;AAE3B,IAAA,IAAI,KAAA,KAAU,IAAA,CAAK,SAAA,EAAW,IAAA,CAAK,SAAA,GAAY,QAAA;AAE/C,IAAA,IAAA,CAAK,iBAAA,GAAoB,KAAA;AAEzB,IAAA,OAAO,IAAA;AACR,EAAA;EAEA,QAAA,GAAW;AACV,IAAA,IAAI,MAAM,IAAA,CAAK,KAAA;AAEf,IAAA,IAAI,QAAQ,IAAA,CAAK,UAAA;AACjB,IAAA,OAAO,KAAA,EAAO;AACb,MAAA,GAAA,IAAO,MAAM,QAAA,EAAQ;AACrB,MAAA,KAAA,GAAQ,KAAA,CAAM,IAAA;AACf,IAAA;AAEA,IAAA,OAAO,MAAM,IAAA,CAAK,KAAA;AACnB,EAAA;EAEA,OAAA,GAAU;AACT,IAAA,IAAI,QAAQ,IAAA,CAAK,UAAA;AACjB,IAAA,GAAG;AACF,MAAA,IACE,MAAM,KAAA,CAAM,MAAA,IAAU,MAAM,KAAA,CAAM,IAAA,MAClC,KAAA,CAAM,OAAA,CAAQ,UAAU,KAAA,CAAM,OAAA,CAAQ,MAAI,IAC1C,KAAA,CAAM,MAAM,MAAA,IAAU,KAAA,CAAM,MAAM,IAAA,EAAI;AAEvC,QAAA,OAAO,KAAA;AACT,IAAA,CAAA,QAAU,QAAQ,KAAA,CAAM,IAAA;AACxB,IAAA,OAAO,IAAA;AACR,EAAA;EAEA,MAAA,GAAS;AACR,IAAA,IAAI,QAAQ,IAAA,CAAK,UAAA;AACjB,IAAA,IAAI,MAAA,GAAS,CAAA;AACb,IAAA,GAAG;AACF,MAAA,MAAA,IAAU,MAAM,KAAA,CAAM,MAAA,GAAS,MAAM,OAAA,CAAQ,MAAA,GAAS,MAAM,KAAA,CAAM,MAAA;AACnE,IAAA,CAAA,QAAU,QAAQ,KAAA,CAAM,IAAA;AACxB,IAAA,OAAO,MAAA;AACR,EAAA;EAEA,SAAA,GAAY;AACX,IAAA,OAAO,IAAA,CAAK,KAAK,UAAU,CAAA;AAC5B,EAAA;AAEA,EAAA,IAAA,CAAK,QAAA,EAAU;AACd,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,QAAQ,CAAA,CAAE,QAAQ,QAAQ,CAAA;AACjD,EAAA;AAEA,EAAA,cAAA,CAAe,QAAA,EAAU;AACxB,IAAA,MAAM,EAAA,GAAK,IAAI,MAAA,CAAA,CAAQ,QAAA,IAAY,SAAS,IAAI,CAAA;AAEhD,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,IAAI,EAAE,CAAA;AACtC,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,MAAA,EAAQ,OAAO,IAAA;AAE9B,IAAA,IAAI,QAAQ,IAAA,CAAK,SAAA;AAEjB,IAAA,GAAG;AACF,MAAA,MAAM,MAAM,KAAA,CAAM,GAAA;AAClB,MAAA,MAAM,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,EAAE,CAAA;AAGhC,MAAA,IAAI,KAAA,CAAM,QAAQ,GAAA,EAAK;AACtB,QAAA,IAAI,IAAA,CAAK,cAAc,KAAA,EAAO;AAC7B,UAAA,IAAA,CAAK,YAAY,KAAA,CAAM,IAAA;AACxB,QAAA;AAEA,QAAA,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,GAAI,KAAA;AACxB,QAAA,IAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,IAAA,CAAK,KAAK,IAAI,KAAA,CAAM,IAAA;AACvC,QAAA,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,IAAA,CAAK,GAAG,IAAI,KAAA,CAAM,IAAA;AACpC,MAAA;AAEA,MAAA,IAAI,SAAS,OAAO,IAAA;AACpB,MAAA,KAAA,GAAQ,KAAA,CAAM,QAAA;IACf,CAAA,QAAS,KAAA;AAET,IAAA,OAAO,KAAA;AACR,EAAA;AAEA,EAAA,OAAA,CAAQ,QAAA,EAAU;AACjB,IAAA,IAAA,CAAK,eAAe,QAAQ,CAAA;AAC5B,IAAA,OAAO,IAAA;AACR,EAAA;AACA,EAAA,gBAAA,CAAiB,QAAA,EAAU;AAC1B,IAAA,MAAM,KAAK,IAAI,MAAA,CAAO,GAAA,IAAO,QAAA,IAAY,SAAS,GAAG,CAAA;AAErD,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,IAAI,EAAE,CAAA;AACtC,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,MAAA,EAAQ,OAAO,IAAA;AAE9B,IAAA,IAAI,QAAQ,IAAA,CAAK,UAAA;AAEjB,IAAA,GAAG;AACF,MAAA,MAAM,MAAM,KAAA,CAAM,GAAA;AAClB,MAAA,MAAM,OAAA,GAAU,KAAA,CAAM,SAAA,CAAU,EAAE,CAAA;AAElC,MAAA,IAAI,KAAA,CAAM,QAAQ,GAAA,EAAK;AAEtB,QAAA,IAAI,KAAA,KAAU,IAAA,CAAK,SAAA,EAAW,IAAA,CAAK,YAAY,KAAA,CAAM,IAAA;AAErD,QAAA,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,GAAI,KAAA;AACxB,QAAA,IAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,IAAA,CAAK,KAAK,IAAI,KAAA,CAAM,IAAA;AACvC,QAAA,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,IAAA,CAAK,GAAG,IAAI,KAAA,CAAM,IAAA;AACpC,MAAA;AAEA,MAAA,IAAI,SAAS,OAAO,IAAA;AACpB,MAAA,KAAA,GAAQ,KAAA,CAAM,IAAA;IACf,CAAA,QAAS,KAAA;AAET,IAAA,OAAO,KAAA;AACR,EAAA;AAEA,EAAA,SAAA,CAAU,QAAA,EAAU;AACnB,IAAA,IAAA,CAAK,iBAAiB,QAAQ,CAAA;AAC9B,IAAA,OAAO,IAAA;AACR,EAAA;EAEA,UAAA,GAAa;AACZ,IAAA,OAAO,IAAA,CAAK,QAAA,KAAa,IAAA,CAAK,QAAA,EAAQ;AACvC,EAAA;AAEA,EAAA,cAAA,CAAe,aAAa,WAAA,EAAa;AACxC,IAAA,SAAS,cAAA,CAAe,OAAO,GAAA,EAAK;AACnC,MAAA,IAAI,OAAO,gBAAgB,QAAA,EAAU;AACpC,QAAA,OAAO,WAAA,CAAY,OAAA,CAAQ,eAAA,EAAiB,CAAC,GAAG,CAAA,KAAM;AAErD,UAAA,IAAI,CAAA,KAAM,KAAK,OAAO,GAAA;AACtB,UAAA,IAAI,CAAA,KAAM,GAAA,EAAK,OAAO,KAAA,CAAM,CAAC,CAAA;AAC7B,UAAA,MAAM,MAAM,CAAC,CAAA;AACb,UAAA,IAAI,MAAM,KAAA,CAAM,MAAA,EAAQ,OAAO,KAAA,CAAM,CAAC,CAAC,CAAA;AACvC,UAAA,OAAO,IAAI,CAAC,CAAA,CAAA;QACb,CAAC,CAAA;MACF,CAAA,MAAO;AACN,QAAA,OAAO,YAAY,GAAG,KAAA,EAAO,MAAM,KAAA,EAAO,GAAA,EAAK,MAAM,MAAM,CAAA;AAC5D,MAAA;AACD,IAAA;AACA,IAAA,SAAS,QAAA,CAAS,IAAI,GAAA,EAAK;AAC1B,MAAA,IAAI,KAAA;AACJ,MAAA,MAAM,UAAU,EAAA;AAChB,MAAA,OAAQ,KAAA,GAAQ,EAAA,CAAG,IAAA,CAAK,GAAG,CAAA,EAAI;AAC9B,QAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AACnB,MAAA;AACA,MAAA,OAAO,OAAA;AACR,IAAA;AACA,IAAA,IAAI,YAAY,MAAA,EAAQ;AACvB,MAAA,MAAM,OAAA,GAAU,QAAA,CAAS,WAAA,EAAa,IAAA,CAAK,QAAQ,CAAA;AACnD,MAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,KAAA,KAAU;AAC1B,QAAA,IAAI,KAAA,CAAM,SAAS,IAAA,EAAM;AACxB,UAAA,MAAMC,YAAAA,GAAc,cAAA,CAAe,KAAA,EAAO,IAAA,CAAK,QAAQ,CAAA;AACvD,UAAA,IAAIA,YAAAA,KAAgB,KAAA,CAAM,CAAC,CAAA,EAAG;AAC7B,YAAA,IAAA,CAAK,SAAA,CAAU,MAAM,KAAA,EAAO,KAAA,CAAM,QAAQ,KAAA,CAAM,CAAC,CAAA,CAAE,MAAA,EAAQA,YAAW,CAAA;AACvE,UAAA;AACD,QAAA;MACD,CAAC,CAAA;IACF,CAAA,MAAO;AACN,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,QAAA,CAAS,KAAA,CAAM,WAAW,CAAA;AAC7C,MAAA,IAAI,KAAA,IAAS,KAAA,CAAM,KAAA,IAAS,IAAA,EAAM;AACjC,QAAA,MAAMA,YAAAA,GAAc,cAAA,CAAe,KAAA,EAAO,IAAA,CAAK,QAAQ,CAAA;AACvD,QAAA,IAAIA,YAAAA,KAAgB,KAAA,CAAM,CAAC,CAAA,EAAG;AAC7B,UAAA,IAAA,CAAK,SAAA,CAAU,MAAM,KAAA,EAAO,KAAA,CAAM,QAAQ,KAAA,CAAM,CAAC,CAAA,CAAE,MAAA,EAAQA,YAAW,CAAA;AACvE,QAAA;AACD,MAAA;AACD,IAAA;AACA,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,cAAA,CAAe,QAAQ,WAAA,EAAa;AACnC,IAAA,MAAM,EAAE,UAAQ,GAAK,IAAA;AACrB,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,MAAM,CAAA;AAErC,IAAA,IAAI,UAAU,EAAA,EAAI;AACjB,MAAA,IAAI,OAAO,gBAAgB,UAAA,EAAY;AACtC,QAAA,WAAA,GAAc,WAAA,CAAY,MAAA,EAAQ,KAAA,EAAO,QAAQ,CAAA;AAClD,MAAA;AACA,MAAA,IAAI,WAAW,WAAA,EAAa;AAC3B,QAAA,IAAA,CAAK,SAAA,CAAU,KAAA,EAAO,KAAA,GAAQ,MAAA,CAAO,QAAQ,WAAW,CAAA;AACzD,MAAA;AACD,IAAA;AAEA,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,OAAA,CAAQ,aAAa,WAAA,EAAa;AACjC,IAAA,IAAI,OAAO,gBAAgB,QAAA,EAAU;AACpC,MAAA,OAAO,IAAA,CAAK,cAAA,CAAe,WAAA,EAAa,WAAW,CAAA;AACpD,IAAA;AAEA,IAAA,OAAO,IAAA,CAAK,cAAA,CAAe,WAAA,EAAa,WAAW,CAAA;AACpD,EAAA;AAEA,EAAA,iBAAA,CAAkB,QAAQ,WAAA,EAAa;AACtC,IAAA,MAAM,EAAE,UAAQ,GAAK,IAAA;AACrB,IAAA,MAAM,eAAe,MAAA,CAAO,MAAA;AAC5B,IAAA,KAAA,IACK,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,MAAM,CAAA,EACnC,KAAA,KAAU,EAAA,EACV,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,MAAA,EAAQ,KAAA,GAAQ,YAAY,CAAA,EACpD;AACD,MAAA,MAAM,QAAA,GAAW,QAAA,CAAS,KAAA,CAAM,KAAA,EAAO,QAAQ,YAAY,CAAA;AAC3D,MAAA,IAAI,YAAA,GAAe,WAAA;AACnB,MAAA,IAAI,OAAO,gBAAgB,UAAA,EAAY;AACtC,QAAA,YAAA,GAAe,WAAA,CAAY,QAAA,EAAU,KAAA,EAAO,QAAQ,CAAA;AACrD,MAAA;AACA,MAAA,IAAI,aAAa,YAAA,EAAc,IAAA,CAAK,UAAU,KAAA,EAAO,KAAA,GAAQ,cAAc,YAAY,CAAA;AACxF,IAAA;AAEA,IAAA,OAAO,IAAA;AACR,EAAA;AAEA,EAAA,UAAA,CAAW,aAAa,WAAA,EAAa;AACpC,IAAA,IAAI,OAAO,gBAAgB,QAAA,EAAU;AACpC,MAAA,OAAO,IAAA,CAAK,iBAAA,CAAkB,WAAA,EAAa,WAAW,CAAA;AACvD,IAAA;AAEA,IAAA,IAAI,CAAC,YAAY,MAAA,EAAQ;AACxB,MAAA,MAAM,IAAI,SAAA;AACT,QAAA;AACJ,OAAA;AACE,IAAA;AAEA,IAAA,OAAO,IAAA,CAAK,cAAA,CAAe,WAAA,EAAa,WAAW,CAAA;AACpD,EAAA;AACD,CAAA;ACx4BA,SAAS,mBAAmB,IAAA,EAAmD;AAC7E,EAAA,IAAI,IAAA,CAAK,SAAS,eAAA,EAAiB;AACjC,IAAA,OAAO,IAAA,CAAK,IAAA;AAAA,EACd;AAEA,EAAA,OAAO,CAAA,EAAG,mBAAmB,IAAA,CAAK,MAAM,CAAC,CAAA,CAAA,EAAI,kBAAA,CAAmB,IAAA,CAAK,QAAQ,CAAC,CAAA,CAAA;AAChF;AAUO,SAAS,WAAA,CAAY,OAAA,GAAmB,EAAC,EAAW;AACzD,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gCAAA;AAAA,IAEN,OAAA,EAAS,KAAA;AAAA,IAET,SAAA,EAAW,CAAC,IAAA,EAAM,EAAA,KAAO;AACvB,MAAA,IAAI,GAAG,QAAA,CAAS,MAAM,KAAK,EAAA,CAAG,QAAA,CAAS,MAAM,CAAA,EAAG;AAC9C,QAAA,MAAM,GAAA,GAAM,IAAI,WAAA,CAAY,IAAI,CAAA;AAEhC,QAAA,MAAM,GAAA,GAAM,MAAM,IAAA,EAAM;AAAA,UACtB,UAAA,EAAY,KAAA;AAAA,UACZ,QAAA,EAAU,EAAA;AAAA,UACV,GAAA,EAAK,IAAA;AAAA,UACL,OAAA,EAAS,CAAC,mBAAA,EAAqB,qBAAA,EAAuB,0BAA0B,CAAA;AAAA,UAChF,OAAA,EAAS,CAAC,CAAC,mCAAA,EAAqC,EAAE,sBAAA,EAAwB,IAAA,EAAM,CAAC;AAAA,SAClF,CAAA;AAED,QAAA,QAAA,CAAS,GAAA,EAAa;AAAA,UACpB,KAAA,CAAM,EAAE,IAAA,EAAK,EAAmB;AAE9B,YAAA,MAAM,OAAA,GAAU,IAAA;AAChB,YAAA,MAAM,OAAA,GAAU,OAAA,EAAS,cAAA,EAAgB,IAAA,EAAM,QAAQ,IAAA,KAAS,OAAA;AAChE,YAAA,MAAM,aAAa,OAAA,CAAQ,SAAA,IAAa,CAAC,OAAA,CAAQ,UAAU,IAAI,CAAA;AAC/D,YAAA,IAAI,cAAc,OAAA,EAAS;AACzB,cAAA;AAAA,YACF;AAEA,YAAA,IAAI,IAAA,CAAK,SAAS,YAAA,EAAc;AAC9B,cAAA,MAAM,EAAE,KAAA,EAAO,GAAA,EAAI,GAAI,IAAA;AAGvB,cAAA,IAAI,CAAC,KAAA,IAAS,CAAC,OAAO,CAAC,IAAA,EAAM,KAAK,KAAA,EAAO;AAEzC,cAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAK,GAAI,KAAK,GAAA,CAAI,KAAA;AAElC,cAAA,MAAM,YAAA,GAAe,KAAK,UAAA,CAAW,EAAE,IAAI,EAAA,GAAK,IAAA,CAAK,QAAQ,EAAE,CAAA;AAC/D,cAAA,MAAM,WAAA,GAAc,QAAQ,GAAA,EAAI;AAChC,cAAA,MAAM,YAAA,GAAe,IAAA,CAAK,QAAA,CAAS,WAAA,EAAa,YAAY,CAAA;AAC5D,cAAA,MAAM,WAAW,CAAA,EAAG,YAAY,IAAI,IAAI,CAAA,CAAA,EAAI,SAAS,CAAC,CAAA,CAAA;AAGtD,cAAA,IAAI,mBAAmB,KAAA,GAAQ,kBAAA,CAAmB,QAAQ,cAAA,CAAe,IAAW,EAAE,MAAA,GAAS,CAAA;AAG/F,cAAA,IAAI,IAAA,CAAK,gBAAgB,CAAA,KAAM,GAAA,EAAK;AAClC,gBAAA,gBAAA,GAAmB,IAAA,CAAK,OAAA,CAAQ,GAAA,EAAK,gBAAgB,CAAA,GAAI,CAAA;AAAA,cAC3D;AAGA,cAAA,MAAM,OAAA,GAAU,eAAe,QAAQ,CAAA,CAAA,CAAA;AACvC,cAAA,GAAA,CAAI,UAAA,CAAW,kBAAkB,OAAO,CAAA;AAAA,YAC1C;AAAA,UACF;AAAA,SACD,CAAA;AAED,QAAA,OAAO;AAAA,UACL,IAAA,EAAM,IAAI,QAAA,EAAS;AAAA,UACnB,GAAA,EAAK,IAAI,WAAA,CAAY;AAAA,YACnB,MAAA,EAAQ,EAAA;AAAA,YACR,cAAA,EAAgB;AAAA,WACjB;AAAA,SACH;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF","file":"inspectAttr.mjs","sourcesContent":["import type { StringReader, StringWriter } from './strings';\n\nexport const comma = ','.charCodeAt(0);\nexport const semicolon = ';'.charCodeAt(0);\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInt = new Uint8Array(128); // z is 122 in ASCII\n\nfor (let i = 0; i < chars.length; i++) {\n  const c = chars.charCodeAt(i);\n  intToChar[i] = c;\n  charToInt[c] = i;\n}\n\nexport function decodeInteger(reader: StringReader, relative: number): number {\n  let value = 0;\n  let shift = 0;\n  let integer = 0;\n\n  do {\n    const c = reader.next();\n    integer = charToInt[c];\n    value |= (integer & 31) << shift;\n    shift += 5;\n  } while (integer & 32);\n\n  const shouldNegate = value & 1;\n  value >>>= 1;\n\n  if (shouldNegate) {\n    value = -0x80000000 | -value;\n  }\n\n  return relative + value;\n}\n\nexport function encodeInteger(builder: StringWriter, num: number, relative: number): number {\n  let delta = num - relative;\n\n  delta = delta < 0 ? (-delta << 1) | 1 : delta << 1;\n  do {\n    let clamped = delta & 0b011111;\n    delta >>>= 5;\n    if (delta > 0) clamped |= 0b100000;\n    builder.write(intToChar[clamped]);\n  } while (delta > 0);\n\n  return num;\n}\n\nexport function hasMoreVlq(reader: StringReader, max: number) {\n  if (reader.pos >= max) return false;\n  return reader.peek() !== comma;\n}\n","const bufLength = 1024 * 16;\n\n// Provide a fallback for older environments.\nconst td =\n  typeof TextDecoder !== 'undefined'\n    ? /* #__PURE__ */ new TextDecoder()\n    : typeof Buffer !== 'undefined'\n      ? {\n          decode(buf: Uint8Array): string {\n            const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n            return out.toString();\n          },\n        }\n      : {\n          decode(buf: Uint8Array): string {\n            let out = '';\n            for (let i = 0; i < buf.length; i++) {\n              out += String.fromCharCode(buf[i]);\n            }\n            return out;\n          },\n        };\n\nexport class StringWriter {\n  pos = 0;\n  private out = '';\n  private buffer = new Uint8Array(bufLength);\n\n  write(v: number): void {\n    const { buffer } = this;\n    buffer[this.pos++] = v;\n    if (this.pos === bufLength) {\n      this.out += td.decode(buffer);\n      this.pos = 0;\n    }\n  }\n\n  flush(): string {\n    const { buffer, out, pos } = this;\n    return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n  }\n}\n\nexport class StringReader {\n  pos = 0;\n  declare private buffer: string;\n\n  constructor(buffer: string) {\n    this.buffer = buffer;\n  }\n\n  next(): number {\n    return this.buffer.charCodeAt(this.pos++);\n  }\n\n  peek(): number {\n    return this.buffer.charCodeAt(this.pos);\n  }\n\n  indexOf(char: string): number {\n    const { buffer, pos } = this;\n    const idx = buffer.indexOf(char, pos);\n    return idx === -1 ? buffer.length : idx;\n  }\n}\n","import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq';\nimport { StringWriter, StringReader } from './strings';\n\nexport {\n  decodeOriginalScopes,\n  encodeOriginalScopes,\n  decodeGeneratedRanges,\n  encodeGeneratedRanges,\n} from './scopes';\nexport type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes';\n\nexport type SourceMapSegment =\n  | [number]\n  | [number, number, number, number]\n  | [number, number, number, number, number];\nexport type SourceMapLine = SourceMapSegment[];\nexport type SourceMapMappings = SourceMapLine[];\n\nexport function decode(mappings: string): SourceMapMappings {\n  const { length } = mappings;\n  const reader = new StringReader(mappings);\n  const decoded: SourceMapMappings = [];\n  let genColumn = 0;\n  let sourcesIndex = 0;\n  let sourceLine = 0;\n  let sourceColumn = 0;\n  let namesIndex = 0;\n\n  do {\n    const semi = reader.indexOf(';');\n    const line: SourceMapLine = [];\n    let sorted = true;\n    let lastCol = 0;\n    genColumn = 0;\n\n    while (reader.pos < semi) {\n      let seg: SourceMapSegment;\n\n      genColumn = decodeInteger(reader, genColumn);\n      if (genColumn < lastCol) sorted = false;\n      lastCol = genColumn;\n\n      if (hasMoreVlq(reader, semi)) {\n        sourcesIndex = decodeInteger(reader, sourcesIndex);\n        sourceLine = decodeInteger(reader, sourceLine);\n        sourceColumn = decodeInteger(reader, sourceColumn);\n\n        if (hasMoreVlq(reader, semi)) {\n          namesIndex = decodeInteger(reader, namesIndex);\n          seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n        } else {\n          seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n        }\n      } else {\n        seg = [genColumn];\n      }\n\n      line.push(seg);\n      reader.pos++;\n    }\n\n    if (!sorted) sort(line);\n    decoded.push(line);\n    reader.pos = semi + 1;\n  } while (reader.pos <= length);\n\n  return decoded;\n}\n\nfunction sort(line: SourceMapSegment[]) {\n  line.sort(sortComparator);\n}\n\nfunction sortComparator(a: SourceMapSegment, b: SourceMapSegment): number {\n  return a[0] - b[0];\n}\n\nexport function encode(decoded: SourceMapMappings): string;\nexport function encode(decoded: Readonly<SourceMapMappings>): string;\nexport function encode(decoded: Readonly<SourceMapMappings>): string {\n  const writer = new StringWriter();\n  let sourcesIndex = 0;\n  let sourceLine = 0;\n  let sourceColumn = 0;\n  let namesIndex = 0;\n\n  for (let i = 0; i < decoded.length; i++) {\n    const line = decoded[i];\n    if (i > 0) writer.write(semicolon);\n    if (line.length === 0) continue;\n\n    let genColumn = 0;\n\n    for (let j = 0; j < line.length; j++) {\n      const segment = line[j];\n      if (j > 0) writer.write(comma);\n\n      genColumn = encodeInteger(writer, segment[0], genColumn);\n\n      if (segment.length === 1) continue;\n      sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n      sourceLine = encodeInteger(writer, segment[2], sourceLine);\n      sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n\n      if (segment.length === 4) continue;\n      namesIndex = encodeInteger(writer, segment[4], namesIndex);\n    }\n  }\n\n  return writer.flush();\n}\n","export default class BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n","export default class Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\tif (DEBUG) {\n\t\t\t// we make these non-enumerable, for sanity while debugging\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tprevious: { writable: true, value: null },\n\t\t\t\tnext: { writable: true, value: null },\n\t\t\t});\n\t\t} else {\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// '  test'.trim()\n\t\t\t//     split   -> '  ' + 'test'\n\t\t\t//   ✔️ edit    -> '' + 'test'\n\t\t\t//   ✖️ edit    -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nexport default class SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n","export default function guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n","export default function getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n","const toString = Object.prototype.toString;\n\nexport default function isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n","export default function getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n","const wordRegex = /\\w/;\n\nexport default class Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n","import BitSet from './BitSet.js';\nimport Chunk from './Chunk.js';\nimport SourceMap from './SourceMap.js';\nimport guessIndent from './utils/guessIndent.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\nimport Stats from './utils/Stats.js';\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nexport default class MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tif (DEBUG) {\n\t\t\tObject.defineProperty(this, 'stats', { value: new Stats() });\n\t\t}\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendLeft');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendLeft');\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendRight');\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\tif (this.outro) {\n\t\t\tmappings.advance(this.outro);\n\t\t}\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tif (DEBUG) this.stats.time('move');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\n\t\tif (DEBUG) this.stats.timeEnd('move');\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tif (DEBUG) this.stats.time('overwrite');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('overwrite');\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('remove');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('remove');\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('reset');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('reset');\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tif (DEBUG) this.stats.time('_split');\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\tif (DEBUG) this.stats.timeEnd('_split');\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\treplacement = replacement(string, index, original);\n\t\t\t}\n\t\t\tif (string !== replacement) {\n\t\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tlet _replacement = replacement;\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\t_replacement = replacement(previous, index, original);\n\t\t\t}\n\t\t\tif (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n","import { parse, traverse } from \"@babel/core\"\nimport type { Node } from \"@babel/core\"\nimport type { JSXIdentifier, JSXMemberExpression } from \"@babel/types\"\nimport MagicString from \"magic-string\"\nimport path from \"path\"\nimport type { Plugin } from \"vite\"\n\ntype Options = {\n  predicate?: (node: Node) => boolean\n  base?: string\n}\n\n// Credit to https://github.com/sudongyuer/vite-plugin-react-inspector/blob/1f4284ebae2ca7001aff5be4619cd53be49ed862/packages/vite-plugin-react-inspector/src/utils/index.ts#L1-L9\nfunction parseJSXIdentifier(name: JSXIdentifier | JSXMemberExpression): string {\n  if (name.type === \"JSXIdentifier\") {\n    return name.name\n  }\n\n  return `${parseJSXIdentifier(name.object)}.${parseJSXIdentifier(name.property)}`\n}\n\n/**\n * 直接在 JSX 元素上添加 code-path 属性\n * \n * 示例：\n * <div>Hello</div> \n * -> \n * <div code-path=\"src/App.tsx:1:1\">Hello</div>\n */\nexport function inspectAttr(options: Options = {}): Plugin {\n  return {\n    name: \"vite-plugin-inspect-dom-simple\",\n\n    enforce: \"pre\",\n\n    transform: (code, id) => {\n      if (id.endsWith(\".tsx\") || id.endsWith(\".jsx\")) {\n        const str = new MagicString(code)\n\n        const ast = parse(code, {\n          configFile: false,\n          filename: id,\n          ast: true,\n          presets: [\"@babel/preset-env\", \"@babel/preset-react\", \"@babel/preset-typescript\"],\n          plugins: [[\"@babel/plugin-proposal-decorators\", { decoratorsBeforeExport: true }]],\n        })\n\n        traverse(ast as Node, {\n          enter({ node }: { node: Node }) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            const jsxNode = node as any\n            const isReact = jsxNode?.openingElement?.name?.object?.name === \"React\"\n            const customSkip = options.predicate && !options.predicate(node)\n            if (customSkip || isReact) {\n              return\n            }\n\n            if (node.type === \"JSXElement\") {\n              const { start, end } = node\n\n              // Make sure all necessary properties exist\n              if (!start || !end || !node?.loc?.start) return\n\n              const { column, line } = node.loc.start\n              // 转换为相对于项目根目录的路径\n              const absolutePath = path.isAbsolute(id) ? id : path.resolve(id)\n              const projectRoot = process.cwd()\n              const relativePath = path.relative(projectRoot, absolutePath)\n              const codePath = `${relativePath}:${line}:${column + 1}`\n\n              // eslint-disable-next-line @typescript-eslint/no-explicit-any\n              let toInsertPosition = start + parseJSXIdentifier(jsxNode.openingElement.name as any).length + 1\n\n              // Handle generic JSX elements like <Component<T> />\n              if (code[toInsertPosition] === \"<\") {\n                toInsertPosition = code.indexOf(\">\", toInsertPosition) + 1\n              }\n\n              // 直接添加 code-path 属性，React 会自动渲染到 DOM\n              const content = ` code-path=\"${codePath}\"`\n              str.appendLeft(toInsertPosition, content)\n            }\n          },\n        })\n\n        return {\n          code: str.toString(),\n          map: str.generateMap({\n            source: id,\n            includeContent: true,\n          }),\n        }\n      }\n    },\n  }\n}\n\n"]}